我正在尝试使用Boost Regex库构建我的VS2012 C ++项目。似乎链接器找不到库并给出错误:
error LNK1104: cannot open file 'libboost_regex-vc110-mt-gd-1_50.lib'
在“项目属性:链接器:常规:其他库目录”中,我包含了一个路径(在子目录中)包含名为 boost_regex.lib
的库。
这是由第三方框架(FireBreath)构建的,我不应该更改它。如何让VS2012使用此库而不是在错误中引用的名称下查找?
答案 0 :(得分:1)
首先,是什么让你确定boost_regex.lib是正确的?它甚至适用于您的编译器和版本?我也怀疑这是运行时库的调试变体。我的猜测是你必须为你正在使用的编译器构建它并正确安装它,Boost网站上有说明。这也可能意味着为您的编译器重建FireBreath,假设它也是一个C ++库。
然后,Boost中检测编译器设置然后选择要链接的库的代码对于正常设置是正确的。此代码使用“#pragma comment(lib,...)”来指定要链接的lib,因此您应该能够找到代码。在那里,您还应该能够检测到关闭此功能的宏。但是,你可能没有修复任何东西,而是你正在制造更多的问题。
答案 1 :(得分:0)
替换库不是你想要做的事情。代替:
c:\boost
c:\boost
并运行bjam
。完成后,运行b2
。等待。c:\boost\stage\lib
添加到Additional Library Directories设置。这将允许您构建项目。