boost安装窗口msvc 10.0 - example.cpp无法链接 [英] boost install windows msvc 10.0 -- example.cpp fails to link
问题描述
下载了boost 1.53.0并在WinXP上干净地执行了简化的安装说明
Having downloaded boost 1.53.0 and cleanly executed the simplified install instructions on WinXP
bootstart
。 \\ b2
bootstart
.\b2
构建的库都是
libboost_xxxxx-vc100-mt-gd-1_53.lib
但是我得到链接器错误,因为链接器正在寻找libboost_xxxxx-vc100-mt-s-gd-1_53.lib。如何获得-s(静态)版本的库构建?我假设.lib已经是静态的,但重命名它们会导致不同的错误。
The libraries that were built were all of the form libboost_xxxxx-vc100-mt-gd-1_53.lib but I get linker errors since the linker is looking for libboost_xxxxx-vc100-mt-s-gd-1_53.lib. How do I get the -s (static) versions of libraries built? I assumed .lib are already all static but renaming them results in different errors.
当我编译example.cpp程序时,我得到一个链接器错误
When I compile the example.cpp program I get a linker error
$ cl /EHsc -IC:/PROGRA~1/MICROS~1.0/VC/include -ID:/boost/boost_1_53_0 example.cpp /link
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16.00.30319.01 for 80x86
Copyright (C) Microsoft Corporation. All rights reserved.
example.cpp
Microsoft (R) Incremental Linker Version 10.00.30319.01
Copyright (C) Microsoft Corporation. All rights reserved.
/out:example.exe
example.obj
LINK : fatal error LNK1104: cannot open file 'libboost_regex-vc100-mt-s-1_53.lib'
如果我将libboost_regex-vc100-mt-1_53.lib复制到libboost_regex-vc100-mt-s-1_53.lib (与其他人报告缺少我得到的错误像这样
If I copy libboost_regex-vc100-mt-1_53.lib to libboost_regex-vc100-mt-s-1_53.lib (along with others it reports missing I get errors like this
msvcprt.lib(MSVCP100.dll) : error LNK2005: "void __cdecl std::_Xlength_error(char const *)" (?_Xlength_error@std@@YAXPBD@Z) already defined in libcpmt.lib(xthrow.obj)
当我用b2生成--build-type =完成
D:\boost\boost_1_53_0> .\b2 --build_type = complete
When I build with b2 --build-type=complete D:\boost\boost_1_53_0>.\b2 --build_type=complete
构建Boost C ++库。
Building the Boost C++ Libraries.
执行配置检查
- 32-bit : yes
- x86 : yes
- has_icu builds : no warning: Graph library does not contain MPI-based parallel components. note: to enable them, add
添加到您的user-config.jam
- iconv(libc):no
- iconv(separate):no
- icu:no
- icu(lib64):no
- gcc visibility
- long double支持:yes警告:跳过可选消息传递接口(MPI)库。注意:要启用MPI支持,
添加using mpi;到user-config.jam。注意:为了抑制此消息,
将--without-mpi传递给bjam。注意:否则,您可以安全地忽略
此消息。警告:未配置python安装,
自动配置注意:失败。请参阅
http://www.boost.org/libs/python/ doc / building.html 注意:对于
配置说明或通过--without-python注释:suppress
此消息,并默认跳过所有Boost.Python目标
"using mpi ;" to your user-config.jam - iconv (libc) : no - iconv (separate) : no - icu : no - icu (lib64) : no - gcc visibility : no - long double support : yes warning: skipping optional Message Passing Interface (MPI) library. note: to enable MPI support, add "using mpi ;" to user-config.jam. note: to suppress this message, pass "--without-mpi" to bjam. note: otherwise, you can safely ignore this message. warning: No python installation configured and autoconfiguration note: failed. See http://www.boost.org/libs/python/doc/building.html note: for configuration instructions or pass --without-python to note: suppress this message and silently skip all Boost.Python targets
组件配置:
- atomic : building
- chrono : building
- context : building
- date_time : building
- exception : building
- filesystem : building
- graph : building
- graph_parallel : building
- iostreams : building
- locale : building
- math : building
- mpi : building
- program_options : building
- python : building
- random : building
- regex : building
- serialization : building
- signals : building
- system : building
- test : building
- thread : building
- timer : building
- wave : building
... patience 。...耐心... ...耐心... ...耐心... ...找到
7117目标...
...patience... ...patience... ...patience... ...patience... ...found 7117 targets...
以下目录应该添加到编译器包含路径:
The following directory should be added to compiler include paths:
D:/boost/boost_1_53_0
链接器库路径:
D:\boost\boost_1_53_0\stage\lib
我还是看不到库
> D:\boost\boost_1_53_0>dir D:\boost\boost_1_53_0\stage\lib Volume in
> drive D is DATA Volume Serial Number is A065-A7DE
>
> Directory of D:\boost\boost_1_53_0\stage\lib
>
> 03/12/2013 11:26 AM <DIR> . 03/12/2013 11:26 AM <DIR>
> .. 03/12/2013 10:36 AM 7,978
> libboost_atomic-vc100-mt-1_53.lib 03/12/2013 10:26 AM
> 57,152 libboost_atomic-vc100-mt-gd-1_53.lib 03/12/2013 10:36 AM
> 355,990 libboost_chrono-vc100-mt-1_53.lib 03/12/2013 10:26 AM
> 1,493,080 libboost_chrono-vc100-mt-gd-1_53.lib 03/12/2013 10:36 AM
> 2,710 libboost_context-vc100-mt-1_53.lib 03/12/2013 10:27 AM
> 5,436 libboost_context-vc100-mt-gd-1_53.lib 03/12/2013 10:36 AM
> 626,878 libboost_date_time-vc100-mt-1_53.lib 03/12/2013 10:27 AM
> 2,097,458 libboost_date_time-vc100-mt-gd-1_53.lib 03/12/2013 10:36 AM
> 5,482 libboost_exception-vc100-mt-1_53.lib 03/12/2013 10:27 AM
> 39,434 libboost_exception-vc100-mt-gd-1_53.lib 03/12/2013 10:36 AM
> 871,780 libboost_filesystem-vc100-mt-1_53.lib 03/12/2013 10:27 AM
> 4,306,464 libboost_filesystem-vc100-mt-gd-1_53.lib 03/12/2013 10:38
> AM 5,840,912 libboost_graph-vc100-mt-1_53.lib 03/12/2013
> 10:28 AM 14,463,054 libboost_graph-vc100-mt-gd-1_53.lib
> 03/12/2013 10:38 AM 418,180
> libboost_iostreams-vc100-mt-1_53.lib 03/12/2013 10:28 AM
> 1,272,374 libboost_iostreams-vc100-mt-gd-1_53.lib 03/12/2013 10:39 AM
> 6,897,100 libboost_locale-vc100-mt-1_53.lib 03/12/2013 10:29 AM
> 22,057,274 libboost_locale-vc100-mt-gd-1_53.lib 03/12/2013 10:41 AM
> 809,360 libboost_math_c99-vc100-mt-1_53.lib 03/12/2013 10:31 AM
> 2,903,758 libboost_math_c99-vc100-mt-gd-1_53.lib 03/12/2013 10:41 AM
> 810,648 libboost_math_c99f-vc100-mt-1_53.lib 03/12/2013 10:31 AM
> 2,898,286 libboost_math_c99f-vc100-mt-gd-1_53.lib 03/12/2013 10:41 AM
> 787,332 libboost_math_c99l-vc100-mt-1_53.lib 03/12/2013 10:31 AM
> 2,863,258 libboost_math_c99l-vc100-mt-gd-1_53.lib 03/12/2013 10:39 AM
> 5,859,300 libboost_math_tr1-vc100-mt-1_53.lib 03/12/2013 10:29 AM
> 14,516,786 libboost_math_tr1-vc100-mt-gd-1_53.lib 03/12/2013 10:40 AM
> 6,145,246 libboost_math_tr1f-vc100-mt-1_53.lib 03/12/2013 10:30 AM
> 15,051,100 libboost_math_tr1f-vc100-mt-gd-1_53.lib 03/12/2013 10:40
> AM 5,807,100 libboost_math_tr1l-vc100-mt-1_53.lib 03/12/2013
> 10:30 AM 14,407,024 libboost_math_tr1l-vc100-mt-gd-1_53.lib
> 03/12/2013 10:44 AM 219,580
> libboost_prg_exec_monitor-vc100-mt-1_53.l ib 03/12/2013 10:34 AM
> 1,239,714 libboost_prg_exec_monitor-vc100-mt-gd-1_5
> 3.lib 03/12/2013 10:42 AM 6,461,312 libboost_program_options-vc100-mt-1_53.li b 03/12/2013 10:32 AM
> 20,176,878 libboost_program_options-vc100-mt-gd-1_53 .lib 03/12/2013
> 10:42 AM 83,144 libboost_random-vc100-mt-1_53.lib
> 03/12/2013 10:32 AM 405,594
> libboost_random-vc100-mt-gd-1_53.lib 03/12/2013 10:37 AM
> 10,593,312 libboost_regex-vc100-mt-1_53.lib 03/12/2013 10:28 AM
> 34,707,966 libboost_regex-vc100-mt-gd-1_53.lib 03/12/2013 10:43 AM
> 11,509,722 libboost_serialization-vc100-mt-1_53.lib 03/12/2013 10:33
> AM 30,119,740 libboost_serialization-vc100-mt-gd-1_53.l ib
> 03/12/2013 10:44 AM 1,000,288
> libboost_signals-vc100-mt-1_53.lib 03/12/2013 10:34 AM
> 3,919,576 libboost_signals-vc100-mt-gd-1_53.lib 03/12/2013 10:36 AM
> 83,030 libboost_system-vc100-mt-1_53.lib 03/12/2013 10:26 AM
> 414,676 libboost_system-vc100-mt-gd-1_53.lib 03/12/2013 10:44 AM
> 10,382,950 libboost_test_exec_monitor-vc100-mt-1_53. lib 03/12/2013
> 10:34 AM 24,314,874 libboost_test_exec_monitor-vc100-mt-gd-1_
> 53.lib 03/12/2013 10:45 AM 978,672 libboost_thread-vc100-mt-1_53.lib 03/12/2013 10:35 AM
> 2,921,850 libboost_thread-vc100-mt-gd-1_53.lib 03/12/2013 10:45 AM
> 177,274 libboost_timer-vc100-mt-1_53.lib 03/12/2013 10:35 AM
> 858,164 libboost_timer-vc100-mt-gd-1_53.lib 03/12/2013 10:45 AM
> 11,293,008 libboost_unit_test_framework-vc100-mt-1_5
> 3.lib 03/12/2013 10:35 AM 26,806,730 libboost_unit_test_framework-vc100-mt-gd- 1_53.lib 03/12/2013 10:46
> AM 47,173,122 libboost_wave-vc100-mt-1_53.lib 03/12/2013 10:36
> AM 99,093,052 libboost_wave-vc100-mt-gd-1_53.lib 03/12/2013
> 10:43 AM 8,910,826 libboost_wserialization-vc100-mt-1_53.lib
>
> 03/12/2013 10:33 AM 20,527,762
> libboost_wserialization-vc100-mt-gd-1_53. lib 03/12/2013 11:26 AM
> <DIR> xx
> 56 File(s) 508,050,750 bytes
> 3 Dir(s) 8,116,432,896 bytes free
>
> D:\boost\boost_1_53_0>
推荐答案
您可以看到boost库的命名约定此处。可以找到Boost.Build属性这里。
You can see the naming convention of boost libraries here. And Boost.Build properties can be found here.
所以,如果你需要一个静态链接CRT的静态库,调用bjam:
So, if you need a static library that links CRT statically, invoke bjam like this:
b2 toolset=msvc-10.0 release threading=multi link=static runtime-link=static
这篇关于boost安装窗口msvc 10.0 - example.cpp无法链接的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!