提升库1.47.1构建' lib'前缀导致LNK1104错误

时间:2015-01-08 09:43:46

标签: visual-studio-2010 boost .lib

我很难生成正确的boost .lib文件,以便在我已经给出的VS项目中进行编译。在使用' b2.exe'执行完整的构建安装后,似乎从VS2010命令提示符我只能生成包含' lib'的提升库文件。前缀。

当我编译项目时,我收到以下错误消息: "错误LNK1104:无法打开文件' boost_signals-vc90-mt-1_47.lib'"

浏览完lib文件夹后,我发现我的boost版本只生成了' libboost_signals-vc90-mt-1_47.lib'

boost文档提供了有关lib前缀的以下信息:

LIB 前缀:除Microsoft Windows外,每个Boost库名称都以此字符串开头。在Windows上,只有普通的静态库使用lib前缀;导入库和DLL没有。

到目前为止,我已尝试使用msvc-9.0工具集的以下构建选项: '建立型=完全' '链接=静态的,共享'

有关如何生成所需.lib文件的任何建议将不胜感激。 非常感谢。

1 个答案:

答案 0 :(得分:0)

每当您链接到boost库的静态版本时,都应该使用

link = static。 link = shared - 只要你动态链接到boost,就应该使用它。它将在boost dll上添加额外的依赖项。

您还可以使用link = static,shared来构建两个版本 - 静态和动态。

在项目中定义'BOOST_ALL_DYN_LINK'控制你如何链接到提升。 如果它被定义 - 它是动态链接,如果没有定义 - 它是静态链接。