所以这就是我想要实现的目标:
首先,我在 Ubuntu 17.10 上。我的目标是编译 Ogre3D,然后按照基本 cmake 项目设置页面中的说明构建示例程序:Ogre3D 1.10 cmake setup
我已经成功编译 Ogre 并像往常一样安装它(在 中/usr/local
),以便在编译我自己的项目时更加轻松。所以基本上,我最终得到:
- 当前的 Ogre3D 源代码(从 github 克隆)
- 从此源代码构建结果(如源代码中的相关帮助文件中所述)。请记住,此时,所有基本依赖项都已满足,并且构建完成没有任何问题。
我的项目文件,使用此设置和生成
CMakeLists.txt
:cmake_minimum_required(VERSION 3.9) find_package(OGRE 1.10 REQUIRED) include_directories(${OGRE_INCLUDE_DIRS}) link_directories(${OGRE_LIBRARY_DIRS}) file(COPY ${OGRE_CONFIG_DIR}/plugins.cfg ${OGRE_CONFIG_DIR}/resources.cfg DESTINATION ${CMAKE_BINARY_DIR}) project(Ogretest) add_executable(Ogretest main.cpp)
显然,在 /usr/local 中安装 Ogre 后,它可以按原样工作,但否则我必须指定正确的路径。这些都不是问题。
- 一个 main.cpp 文件,它只是教程中提到的 Bootstrap.cpp 文件的副本。我将它添加到项目中,然后尝试构建。
在这一点上,有些事情引起了我的注意。
示例浏览器与 Ogre 的其余部分同时构建,它依赖于教程中使用的相同 OgreBites 组件,由于找不到 libfreetype.so.2.6 的奇特原因,它根本无法工作。果然,freetype 实际上是在配置 Ogre 构建的 cmake 期间构建的,我真的不明白为什么它会有任何问题。
由于未声明SDLK_ESCAPE,或者不在正确的范围内,示例程序无法编译。这很烦人,因为我几乎不知道这是否是由于 Ogre、SDL 或其他任何问题造成的。我的预感是我的系统上的 OgreBites 存在严重问题。
所以。
看到这个用于构建和使用最新版本的 Ogre 和 cmake 的“教程”是......充其量是模糊的,似乎真的总结为“复制示例文件并以某种方式构建你的东西”,我在这里真的只有两个选择。
要么有人试图指导我找出困扰我的疯狂问题,要么,我认为这会更有趣,有人构建了 Ogre,这个示例程序自己然后展示了他们的确切做法(即使我已经准备好打赌没有人会遇到问题,但是嘿)
(另外,保持最好的状态,我认为使用 sudo make install 安装构建结果是一个好主意,但是 makefile 没有卸载选项,而且在清理安装时我很无聊。除非有人有想法?)