Opened 12 years ago
Closed 12 years ago
#4901 closed Bugs (wontfix)
boost_serialization link error under msvc 9.0 & 8.0
Reported by: | anonymous | Owned by: | Robert Ramey |
---|---|---|---|
Milestone: | To Be Determined | Component: | serialization |
Version: | Boost 1.45.0 | Severity: | Problem |
Keywords: | Cc: |
Description
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 ;
Change History (7)
comment:1 by , 12 years ago
Summary: | boost_serialization link error under msvc 9.0 → boost_serialization link error under msvc 9.0 & 8.0 |
---|
comment:2 by , 12 years ago
You need to add <define>BOOST_ALL_NO_LIB to disable auto-linking. I think other libraries probably already disable auto-linking in their usage requirements.
comment:3 by , 12 years ago
Thank you. It works! I`m gonna readdress this issue back to serialization library.
comment:5 by , 12 years ago
Component: | Building Boost → serialization |
---|---|
Owner: | set to |
Moved to Serialization to add <define>BOOST_ALL_NO_LIB in the usage requirements.
comment:7 by , 12 years ago
Resolution: | → wontfix |
---|---|
Status: | new → closed |
Same problems with msvc 8.0 LINK : fatal error LNK1104: cannot open file 'libboost_serialization-vc80-mt-gd-1_45.lib'