我已经构建了 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 安装的特定库吗?