1

我正在尝试使用 Boost Regex 库构建我的 VS2012 C++ 项目。链接器似乎找不到库并给出错误:

error LNK1104: cannot open file 'libboost_regex-vc110-mt-gd-1_50.lib'

在“项目属性:链接器:常规:附加库目录”中,我包含了一个路径,该路径(在子目录中)包含一个名为boost_regex.lib.

这是由第 3 方框架 (FireBreath) 构建的,我不应该更改它。如何让 VS2012 使用这个库,而不是在错误中引用的名称下寻找一个?

4

2 回答 2

1

首先,是什么让您如此确定 boost_regex.lib 是正确的?它甚至适用于您的编译器和版本吗?我也怀疑它是否适用于运行时库的调试变体。我的猜测是,您必须为正在使用的编译器构建它并正确安装它,Boost 网站上有相关说明。这也可能意味着为您的编译器重建 FireBreath,假设它也是一个 C++ 库。

然后,Boost 中检测编译器设置然后选择要链接的库的代码对于正常设置是正确的。此代码使用“#pragma comment(lib, ...)”来指定要链接的库,因此您应该能够找到该代码。在那里,您还应该能够检测到关闭此功能的宏。但是,您可能没有解决任何问题,而是您正在制造更多问题。

于 2013-04-14T10:30:56.893 回答
0

替换图书馆不是你想做的事情。反而:

  • 将 Boost 下载到,比如说,c:\boost
  • 打开 VS 命令提示符,进入c:\boost并运行bjam. 完成后,运行b2. 等待。
  • 现在进入您的项目并添加c:\boost\stage\lib到 Additional Library Directories 设置。

这将允许您构建项目。

于 2013-07-14T16:37:17.750 回答