【发布时间】:2010-08-11 15:57:42
【问题描述】:
我正在开发一个可以通过编写 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'
为什么它没有选择我编译的库之一?
我认为库名称中的 s 代表静态,但是自动链接功能似乎选择了一个动态库,我希望它全部静态链接到一个可执行文件中。
正则表达式库也是如此:我编译了相同的 4 个正则表达式库,快速测试显示此链接错误:
1>LINK : fatal error LNK1104: cannot open file 'libboost_regex-vc90-mt-gd-1_43.lib'
怎么办?
【问题讨论】:
-
你告诉vc++这些库在哪里吗?这不是通灵的。
-
是的,库和包含路径设置正确(检查 3 次后)。它只想要不存在的文件名。但是我想要的库版本已经编译好了!
标签: c++ visual-studio-2008 boost static-linking boost-python