【问题标题】:boost install windows msvc 10.0 -- example.cpp fails to linkboost install windows msvc 10.0 -- example.cpp 无法链接
【发布时间】:2013-02-28 11:03:54
【问题描述】:

已下载 boost 1.53.0 并在 WinXP 上干净地执行了简化的安装说明

开机启动
.\b2

构建的库都是形式 libboost_xxxxx-vc100-mt-gd-1_53.lib 但我收到链接器错误,因为链接器正在寻找 libboost_xxxxx-vc100-mt-s-gd-1_53.lib。如何获得构建的库的 -s (静态)版本?我假设 .lib 已经全部是静态的,但是重命名它们会导致不同的错误。

当我编译 example.cpp 程序时,我得到一个链接器错误

$ 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 (连同其他报告丢失,我会收到这样的错误

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=complete 构建时 D:\boost\boost_1_53_0>.\b2 --build_type=complete

构建 Boost C++ 库。

执行配置检查

- 32-bit                   : yes
- x86                      : yes
- has_icu builds           : no warning: Graph library does not contain MPI-based parallel components. note: to enable them, add

"使用 mpi ;"到您的 user-config.jam - iconv (libc):没有 - iconv(单独):没有 - 重症监护室:没有 - 重症监护室(lib64):没有 - gcc 可见性:没有 - 长期双重支持:是警告:跳过可选的消息传递接口 (MPI) 库。注意:要启用 MPI 支持, 添加“使用mpi;”到 user-config.jam。注意:要禁止显示此消息, 将“--without-mpi”传递给 bjam。注意:否则,您可以放心地忽略 这条信息。警告:没有配置 python 安装和 自动配置说明:失败。看 http://www.boost.org/libs/python/doc/building.html注:为 配置说明或者通过 --without-python 来说明:suppress 此消息并静默跳过所有 Boost.Python 目标

组件配置:

- 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

...耐心... ...耐心... ...耐心... ...耐心... ...找到 7117个目标...

Boost C++ 库已成功构建!

以下目录应添加到编译器包含路径:

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>

【问题讨论】:

  • --build-type=complete 添加到您的b2 调用中,将构建静态/共享、调试/发布和单/多线程变体的所有组合。
  • 请注意,.lib 文件也是为 DLL 生成的(并且在您链接这些 DLL 时使用)。所以一个 .lib 文件可能是一个静态库,或者它可能只是一个用于链接 DLL 的存根。
  • 谢谢,将 --build-type=complete 添加到您的 b2 调用中就可以了。并感谢 .lib 扩展名的仅供参考

标签: c++ visual-c++ boost


【解决方案1】:

你可以看到boost库here的命名约定。 Boost.Build 属性可以在here找到。

所以,如果您需要一个静态链接 CRT 的静态库,请像这样调用 bjam:

b2 toolset=msvc-10.0 release threading=multi link=static runtime-link=static

【讨论】:

    猜你喜欢
    • 2019-04-25
    • 2020-06-22
    • 2021-02-13
    • 2017-05-15
    • 2011-08-22
    • 1970-01-01
    • 1970-01-01
    • 2015-12-27
    • 2017-08-18
    相关资源
    最近更新 更多