【发布时间】:2012-07-27 12:53:33
【问题描述】:
我已经构建了 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 的建议,我看到 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 应该在哪里,但 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 安装的特定库吗?
【问题讨论】:
标签: boost cmake boost-thread ogre