Question

I stuck while trying to compile qpid c++ with boost 1_47_0 using Visual Studio 2010. Here is steps sequence, that I made:

  1. Built boost 1.48.0
  2. Added BOOST_ROOT, BOOST_INCLUDEDIR, BOOST_LIBRARYDIR, etc. to %PATH% env. variable
  3. Installed cmake, Python, Ruby and added their paths to %PATH% env. variable
  4. Untared qpid-cpp-0.14.tar.gz
  5. Applied patch from https://bugzilla.redhat.com/attachment.cgi?id=542165&action=diff due to last changes in boost file hierarchy
  6. Renamed a few, required by qpid, boost libraries from libbost_LIBRARY-vc100-mt-1_48.lib to boost_LIBRARY.lib format
  7. Launched "cmake -i -G 'Visual Studio 2010'" in the 'qpidc-0.14' directory and successfully received *.vcxproj files

Now, the problems were appeared.

I loaded 'ALL_BUILD.vcxproj' file, created on step 7, and tried to build one project - qpidcommon. But I couldn't, due to 'missing a library' error. I renamed boost libraries from libbost_LIBRARY-vc100-mt-1_48.lib to boost_LIBRARY-vc100-mt-1_48.lib file format again and tried to compile.

And, at least, I received next:

...
...
...
(__imp_??0variables_map@program_options@boost@@QAE@XZ) referenced in function 
"public: void __thiscall qpid::Options::parse(int,char const * const *,class 
std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,bool)" 
(?parse@Options@qpid@@QAEXHPBQBDABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@_N@Z)

3>D:\wc-gather\tplibs\qpidc-0.14\src\Release\qpidcommon.dll : fatal error LNK1120: 
33 unresolved externals
========== Build: 2 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

I have no ideas, how to handle this, without adding a library direct to project. Do you?

Thanks.

Was it helpful?

Solution

boost_LIBRARY-vc100-mt-1_48.lib should be an import library (for boost_LIBRARY-vc100-mt-1_48.dll), not a static one. Rename it to its original name (with lib prefix). Next, build a full boost, to have any possible variation

bjam -j8 toolset=msvc --build-type=complete

Use -j8 if you have 8-core (like intel i7) for a big speedup (8 minutes for a full build), and install boost (bjam toolset=msvc --build-type=complete install)

Then try to rebuild your application again.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top