1

我已经构建了 Ogre 3d 引擎(线程和 date_time)所需的动态提升库。我的 boost 目录位于 C:\boost 中,lib 位于 C:\boost\lib 中,并且包含在 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的建议,我看到提升被认可:

-- [ 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 应该在的地方,但是 thread 和 date_time 库对 CMake 是不可见的。

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

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

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

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

4

1 回答 1

1

尝试使用设置为cmake的变量进行调用。这可能会给您一些提示,说明 FindBoost 模块为什么找不到您的 Boost 安装。Boost_DEBUGTRUE

cmake -DBoost_DEBUG=TRUE .
于 2012-07-27T13:06:39.490 回答