0

对于长期使用 boost 的用户来说,这可能是一件轻而易举的事,但我刚刚开始使用 boost。

我构建了完整的 boost 发行版和 BCP 来提取我需要放入我的 VisualStudio C++ 项目的部分。

我发现当我调用 bcp 时,它会将源树复制到目标。它不会复制所需的编译库文件(对于那些需要它的模块)。

所以当我构建我的项目并包含

#include "boost/program_options.hpp"

例如,我收到一个链接器错误:

*错误1错误LNK1104:无法打开文件'libboost_program_options-vc100-mt-sgd-1_54.lib'*

所以我的问题是:BCP 是否也应该根据需要复制已编译的 LIB 文件?

或者

BOOST用户自己手动复制那些编译好的库文件是标准程序吗?

4

1 回答 1

1

我最近开始尝试使用 BCP。似乎任何需要库的 boost 模块都不会被复制,而是需要使用 bjam 构建。

例如,当您在代码上运行 bcp 时,它会输出一些像这样的“INFO”语句:
INFO: tracking source dependencies of library date_time due to presence of BOOST_DATE_TIME_DECL...
INFO: tracking source dependencies of library smart_ptr due to presence of "void sp_scalar_constructor_hook... 请注意,除了生成的包含一堆复制的 boost 头文件的“boost”文件夹之外,还有一个“libs”文件夹以及Jam 文件(Jamroot、Jamfile.v2 等)。我认为您需要 cd 到带有 Jamfiles 的目录并使用 bjam 来构建所需的库。

也许这个答案会有所帮助: Building a subset of boost in windows

于 2013-12-03T18:55:14.310 回答