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'