[Boost-bugs] [Boost C++ Libraries] #4901: boost_serialization link error under msvc 9.0

Subject: [Boost-bugs] [Boost C++ Libraries] #4901: boost_serialization link error under msvc 9.0
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2010-11-28 14:46:54


#4901: boost_serialization link error under msvc 9.0
------------------------------+---------------------------------------------
 Reporter: anonymous | Owner:
     Type: Bugs | Status: new
Milestone: To Be Determined | Component: Building Boost
  Version: Boost 1.45.0 | Severity: Problem
 Keywords: |
------------------------------+---------------------------------------------
 I`m trying to compile small program using boost_serialization under msvc.
 I have three simple cases:
 {{{
 1) FAILED!
 Jamroot:

 using msvc ;

 use-project boost : "C:\\Boost\\boost_1_45_0" ;

 exe serial : serial.cpp /boost/serialization//boost_serialization ;

 Serial.exe.rsp:

 "bin\msvc-9.0\debug\threading-multi\serial.obj"
 "C:\Boost\boost_1_45_0\bin.v2\libs\serialization\build\msvc-9.0\debug
 \threading-multi\boost_serialization-vc90-mt-gd-1_45.lib"

 All full paths are exist!

 msvc.link.dll
 C:\Boost\boost_1_45_0\bin.v2\libs\serialization\build\msvc-9.0\debug
 \threading-multi\boost_serialization-vc90-mt-gd-1_45.dll
    Creating library
 C:\Boost\boost_1_45_0\bin.v2\libs\serialization\build\msvc-9.0\debug
 \threading-multi\boost_serialization-vc90-mt-gd-1_45.lib and objec
 t C:\Boost\boost_1_45_0\bin.v2\libs\serialization\build\msvc-9.0\debug
 \threading-multi\boost_serialization-vc90-mt-gd-1_45.exp
 msvc.manifest.dll
 C:\Boost\boost_1_45_0\bin.v2\libs\serialization\build\msvc-9.0\debug
 \threading-multi\boost_serialization-vc90-mt-gd-1_45.dll
 msvc.link bin\msvc-9.0\debug\threading-multi\serial.exe
 LINK : fatal error LNK1104: cannot open file 'libboost_serialization-vc90
 -mt-gd-1_45.lib'

         call "c:\Program Files\Microsoft Visual Studio
 9.0\VC\vcvarsall.bat" x86 >nul
 link /NOLOGO /INCREMENTAL:NO /DEBUG /MACHINE:X86 /subsystem:console
 /out:"bin\msvc-9.0\debug\threading-multi\serial.exe"
 @"bin\msvc-9.0\debug\threading-
 multi\serial.exe.rsp"
         if %ERRORLEVEL% NEQ 0 EXIT %ERRORLEVEL%

 ...failed msvc.link bin\msvc-9.0\debug\threading-multi\serial.exe
 bin\msvc-9.0\debug\threading-multi\serial.pdb...
 ...failed updating 2 targets...
 ...updated 34 targets...

 2) FAILED!
 Jamroot:
 using msvc ;

 use-project boost : "C:\\Boost\\boost_1_45_0" ;

 exe serial : serial.cpp /boost/serialization//boost_serialization :
 <link>static <runtime-link>static ;

 All paths from serial.exe.rsp are exist too.

 ...
 compile-c-c++
 C:\Boost\boost_1_45_0\bin.v2\libs\serialization\build\msvc-9.0\debug\link-
 static\runtime-link-static\xml_archive_exception.obj
 xml_archive_exception.cpp
 compile-c-c++
 C:\Boost\boost_1_45_0\bin.v2\libs\serialization\build\msvc-9.0\debug\link-
 static\runtime-link-static\shared_ptr_helper.obj
 shared_ptr_helper.cpp
 msvc.archive
 C:\Boost\boost_1_45_0\bin.v2\libs\serialization\build\msvc-9.0\debug\link-
 static\runtime-link-static\libboost_serialization-vc90-sgd-1_45.lib

 stl_port.obj : warning LNK4221: no public symbols found; archive member
 will be inaccessible
 msvc.link bin\msvc-9.0\debug\link-static\runtime-link-static\serial.exe
 LINK : fatal error LNK1104: cannot open file 'libboost_serialization-vc90
 -mt-sgd-1_45.lib'

         call "c:\Program Files\Microsoft Visual Studio
 9.0\VC\vcvarsall.bat" x86 >nul
 link /NOLOGO /INCREMENTAL:NO /DEBUG /MACHINE:X86 /subsystem:console
 /out:"bin\msvc-9.0\debug\link-static\runtime-link-static\serial.exe"
 @"bin\msvc-9.0\
 debug\link-static\runtime-link-static\serial.exe.rsp"
         if %ERRORLEVEL% NEQ 0 EXIT %ERRORLEVEL%

 ...failed msvc.link bin\msvc-9.0\debug\link-static\runtime-link-
 static\serial.exe bin\msvc-9.0\debug\link-static\runtime-link-
 static\serial.pdb...
 ...failed updating 2 targets...
 ...updated 32 targets...

 3) WORKS!

 using msvc ;

 use-project boost : "C:\\Boost\\boost_1_45_0" ;

 exe serial : serial.cpp /boost/serialization//boost_serialization
 link<static> ;
 }}}
 So where is problem?
 Is only one possible configuration for building serialization library
 under msvc?

 I can link with other libraries, boost_program_options for instance, but
 not with boost_serialization.
 {{{
 using msvc ;

 use-project boost : "C:\\Boost\\boost_1_45_0" ;

 exe main : main.cpp /boost/program_options//boost_program_options ;
 }}}

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/4901>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.

This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:04 UTC