c++ - 在 C++ Win x64 应用程序中包含 boost 库

标签 c++ boost windows-7-x64 boost-filesystem

我有一个 C++ 控制台应用程序,我使用 Microsoft SDK 编译器为 Windows x86 平台成功编译了它。现在,我想为 x64 系统编译相同的源代码。我正在使用 boost 库(文件系统、程序选项和一些其他方法)。我已经为 x64 系统重新编译了 boost 库(使用“bjam --toolset=msvc-9.0 address-model=64 --build-type=complete stage”)。现在,当我尝试编译源文件时,它会提示 boost 库。

之前我包含了 "libboost_filesystem-vc120-mt-1_55.lib" 并成功编译。现在我包含了 "boost_filesystem-vc90-mt-1_55.lib",但是链接器提示:

LINK : fatal error LNK1104: cannot open file 'libboost_filesystem-vc120-mt-1_55.lib'

我不知道为什么它仍然要求"libboost_filesystem-vc120-mt-1_55.lib" 库。

提前致谢

塞尔哈特

最佳答案

出于二进制兼容性原因,您不能链接使用与您正在使用的编译器不同的编译器编译的 boost。在这种情况下,您将 vc120 用于主编译器,但使用 vc90 编译 boost。这两个工具集不会(故意)产生二进制兼容的结果。

在这种情况下,您需要在 IDE 自带的 vs2012 x64 native 命令提示符中编译 boost。这将生成您需要的库。

关于c++ - 在 C++ Win x64 应用程序中包含 boost 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29100944/

相关文章:

c++ - 我可以使用 boost bind 定义用于对 STL 列表进行排序的比较器吗?

c++ - asio缓冲区深拷贝

c++ - 有没有一种方法可以将数据直接编码到硬盘驱动器(类似于使用 RAM 的方式)?

c++ - 如何将 char 类型数组传递给函数并将第一个 char 数组复制到第二个图表数组并使用 C++ 进行比较?

c++ - boost::format 和自定义打印标准容器

hadoop - 用于 Hadoop 开发的 Eclipse 设置

.net - 在 IIS7 中配置时 SignalR 聊天不起作用 - Windows 7

c++ - 发布版本中的 Visual C++ 6 编译错误

c# - 依赖于 Visual C++ 2013 运行时的 NuGet 包

c++ - 一次性计算两组差值 A\B 和 B\A