【问题标题】:Building Boost for Ogre 64 bit为 Ogre 64 位构建 Boost
【发布时间】:2012-06-11 14:45:21
【问题描述】:

需要添加 64 位版本的 Ogre 图形引擎(在撰写本文时是最新版本,即 1.8.0),我关注了their hints 并打开了一个可视的 c++ x64 命令提示符并输入以下内容:

  bjam --build-dir=vc10 --toolset=msvc-10.0 --address_model=64 --with-thread --with-date_time --build-type=complete stage

这是我通过令人信服的提升为 64 位 Windows 编译器构建 lib 对象而获得的。我正在使用 Visual Studio 2010 Premium 和 CMake 工具从源代码编译 Ogre。这就是事情变得令人讨厌的地方:

 Error  276 error LNK1104: cannot open file '..\..\lib\Debug\OgreMain_d.lib'    
 Error  119 error LNK1112: module machine type 'X86' conflicts with target machine type 'x64'   

我担心我不会很快解决这个问题,因为我完全不习惯使用严重依赖依赖项的大型代码库,而且我必须从头开始构建。你能否提供一个提示或链接到我可能错过的东西?谢谢..

更新 有一个包含已经构建的库的网站,但是很高兴了解为什么 --address-model--address-space 标志不起作用。还应该如何使用 bjam 来构建库?

【问题讨论】:

    标签: visual-studio-2010 boost cmake bjam ogre


    【解决方案1】:

    bjam 命令中有几个错误。你不想在toolsetaddress-model 前面加上--,而且address-model 有一个连字符,而不是下划线。

    所以你可能瞄准的命令是:

    bjam --build-dir=vc10 toolset=msvc-10.0 address-model=64 --with-thread --with-date_time --build-type=complete stage
    

    【讨论】:

    • 谢谢,我想我需要做两件事:检查我的眼睛并纠正 Ogre 官方教程(因为他们使用 --toolset)。难怪 address_model 未被 bjam 识别为有效标志
    【解决方案2】:

    第一个错误是不言自明的 - lib 文件在指定的路径中不存在。 第二个错误表明您正在为 64 位构建,但正在使用的依赖库之一是为 32 位编译的。

    【讨论】:

    • 很清楚,第一个错误可能是由我的问题中的确切问题引起的问题:如何为 64 位编译器构建那些 boost 库?虽然我在 MS VC 提示符中使用了带有 '--address_model=64' 标志的 boost 'bjam',但它没有为 64 位目标生成 '.libs'(我用 'dumpbin' 进行了检查效用)。我想如果我能摆脱 64 对 32 的问题,我就会解决它。
    【解决方案3】:

    尝试从there 下载预编译的 Boost 二进制文件并将其安装到默认位置。这将使 CMake 正确定位库并包含目录。

    【讨论】:

    • 我已经这样做了,它们都是 32 位的。对于 64 位,我在this SO 线程中找到了一个版本作为答案(我相信是第二个)
    猜你喜欢
    • 2015-05-30
    • 2011-10-18
    • 1970-01-01
    • 2010-12-04
    • 1970-01-01
    • 2014-04-10
    • 1970-01-01
    • 2011-11-04
    • 1970-01-01
    相关资源
    最近更新 更多