Boost 1.50 CMake 2.8和Ogre 1.8-win64-动态链接



我已经构建了Ogre 3d引擎所需的动态boost库(thread和date_time)。我的boost目录在C:\boost中,lib在C:\boost\lib中,include在标准要求的C:\boost(\boost)中。

如果您熟悉CMake和Ogre(因为这是从源代码构建任何Ogre存储库克隆的最简单方法),您就会知道没有太多其他内容可以指定。在我的情况下,这不是真的:Cmake总是报告它找不到助推。只有当我试图从他们的存储库中构建Ogre 1.8版本时,才会发生这种情况。当我使用Ogre 2.0实验不稳定时(在我写这个问题的时候),boost被成功地找到了,它的线程和日期时间组件也是如此。

有人有什么想法吗?最好是,有人尝试过用这种方式构建Ogre 1.8源吗?

我确实尝试了几乎所有的东西(甚至命令行cmake),但没有积极的结果。

我在Ogre论坛上问过两次这个问题,但这些消息来源都没有解决Ogre稳定发布的问题。

是什么让Cmake在构建一个版本而不是另一个版本时如此脱轨?我如何至少在CMake中检查boost的存在(而不创建构建解决方案或其他任何东西)?

必须有一个简单的命令行标志或一个简单脚本才能使用cmake运行,但除了FindBoost.cmake文件之外,其他任何东西都没有真正的帮助(而且这个文件太大了,无法一眼就能看出什么)。

更新使用sakra的建议,我发现boost得到了认可:

-- [ C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:6
7 ] location of version.hpp: C:/boost/boost/version.hpp
-- [ C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/FindBoost.cmake:7
6 ] version.hpp reveals boost 1.50.0

但是,尽管本节确实揭示了boost应该在哪里,但线程库和date_time库对CMake来说是不可见的。

Boost_USE_STATIC_LIBS标志设置为OFF/FLSE,以防万一。。

UPDATE使用--find package cmake命令行参数:

C:Ogre18Build>cmake --find-package -DNAME=Boost -DCOMPILER_ID=GNU -DLANGUAGE=C
XX -DMODE=EXIST
Boost found.

最终,cmake找不到所需的组件。可以检查属于提升安装的特定库吗?

尝试在变量Boost_DEBUG设置为TRUE的情况下调用cmake。这可能会给你一些提示,说明为什么FindBoost模块找不到你的Boost安装。

cmake -DBoost_DEBUG=TRUE .

最新更新