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

以前,我包含“ libboost_filesystem-vc120-mt-1_55.lib”并已成功编译。现在,我包括“ boost_filesystem-vc90-mt-1_55.lib”,但是链接器抱怨:


  链接:致命错误LNK1104:无法打开文件
  'libboost_filesystem-vc120-mt-1_55.lib'


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

提前致谢,

塞哈特

最佳答案

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

在这种情况下,您需要在IDE随附的vs2012 x64本机命令提示符下编译boost。这将产生您需要的库。

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

10-13 06:33