Boost自动链接库不是由Boost构建的,但是构建了预期的库

Chr*_*phe 3 c++ boost static-linking visual-studio-2008 boost-python

我正在开发一个Math应用程序,可以通过编写python脚本来扩展它.

我使用Qt 4.6.3(构建为静态库,调试和发布版本)和Boost 1.43.0(构建为静态库,运行时链接也设置为静态,多线程版本,调试和发布).一切都是用MSVC++ 2008构建的.Boost构建了以下库:

  • libboost_python-VC90-MT-S-1_43.lib
  • libboost_python-VC90-MT-s.lib
  • libboost_python-VC90-MT-SGD-1_43.lib
  • libboost_python-VC90-MT-sgd.lib

我的项目编译,但在链接阶段给出以下错误:

1>Linking...
1>LINK : fatal error LNK1104: cannot open file 'boost_python-vc90-mt-gd-1_43.lib'
Run Code Online (Sandbox Code Playgroud)

为什么不选择我编译的库之一?

我认为库名中的s代表静态,但是自动链接功能似乎选择了一个动态库,我希望它在一个可执行文件中静态链接.

regex库也是如此:我编译了相同的4个正则表达式库并且快速测试显示了这个链接错误:

1>LINK : fatal error LNK1104: cannot open file 'libboost_regex-vc90-mt-gd-1_43.lib'
Run Code Online (Sandbox Code Playgroud)

该怎么办?

Ral*_*alf 7

您可以定义BOOST_ALL_NO_LIB.这可以防止自动链接boost库,然后必须手动链接所需的boost库.