1

这就是我所做的:

  • 从 boost 网站下载 1.54 zip 文件
  • 将其提取/复制到 C:\Program Files (x86)\Boost
  • 在 Visual Studio 中,我将包含库设置为:C:\Program Files (x86)\Boost\boost_1_54_0\boost_1_54_0\

(这似乎可以让编译器接受库)

现在我遇到了问题 - 链接器:

  • 在 Visual Studio 中,我已将链接器包含目录设置为:C:\Program Files (x86)\Boost\boost_1_54_0\boost_1_54_0\libs\

当我编译我的项目时,我得到:

致命错误 LNK1104:无法打开文件“libboost_date_time-iw-mt-sgd-1_54.lib”

编辑使用下面的答案构建了 boost 二进制文件。但是我现在有这些文件:

libboost_date_time-vc110-1_54.lib
libboost_date_time-vc110-gd-1_54.lib
libboost_date_time-vc110-mt-1_54.lib
libboost_date_time-vc110-mt-gd-1_54.lib
libboost_date_time-vc110-mt-s-1_54.lib
libboost_date_time-vc110-mt-sgd-1_54.lib
libboost_date_time-vc110-s-1_54.lib
libboost_date_time-vc110-sgd-1_54.lib

但仍然没有

'libboost_date_time-iw-mt-sgd-1_54.lib'

编辑:认为我发现了问题:

http://lists.boost.org/Archives/boost/2004/08/70114.php

好的,问题来了:最初我们有一个英特尔工具集:“intel-win32”,它创建了库后缀“iw”(注意没有版本号!),这就是自动链接头当前搜索的内容。

然而,人们已经开始添加版本化的英特尔工具集,这意味着我们现在生成了一个临时混合的库名称,有些带有编译器版本后缀,有些没有,自动链接代码可以处理任何一种形式,但因为它不是通灵的,所以它可以t同时处理:-(

解决方案是#define BOOST_ALL_NO_LIB

4

1 回答 1

3

在 64 位系统上,您应该在 Program Files 中构建 boost,而不是 Program Files(x86),boost 自动库包含不能正确处理重定向。或者,您可以手动管理库包含...但我强烈建议您不要这样做。

还提醒您,您需要增强您将要使用的所有口味和口味。请参阅如何在 Visual Studio 2010 中使用 Boost,以了解如何使用的一个很好的示例。

  • 在管理员 Visual Studio 命令提示符下,转到 boost 目录
  • bootstrap.bat
  • b2 --toolset=msvc-10.0 --build-type=complete architecture=x86 address-model=64
  • 等待 b2 完成构建

编辑:

事实证明iw,该库中的 intel 编译器指的是 intel 编译器......要将其与 boost 和 Visual Studio 一起使用,您需要遵循Intel 的指示

于 2013-11-05T20:10:49.577 回答