Using boost 1_48 with Apache qpid on Windows
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](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.


Answer: 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.

