,所以这是我要实现的目标:
首先,我在Ubuntu 17.10上。我的目标是编译OGRE3D,然后构建示例程序,如基本CMAKE项目设置页面:OGRE3D 1.10 CMAKE SETUP
我已经成功地编译了食人魔并像往常一样(在/usr/local
中(安装了OGRE,以便在编译自己的项目时更轻松。因此,基本上,我最终得到了:
- 当前的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.2.6.2.6找不到。果然,实际上是在Ogre构建的CMake配置期间构建的,我真的不知道为什么它会遇到任何问题。
-
示例程序未根据 sdlk_escape 未被声明,或者不在正确的范围中进行编译。这很烦人,因为我几乎不知道这是否是由于OGRE,SDL或其他任何其他问题所致。我的直觉是,我的系统上有一个严重的问题。
所以。
看到这个"教程"用于构建和使用CMAKE的最新版本的Ogre充其量是...充其量是含糊的,似乎总结了"复制示例文件并以某种方式构建您的东西",我真的只有两个选项在这里。
有人试图指示我找出困扰我的任何疯狂问题,或者我认为这会更有趣,所以有人构建了Ogre,并且该示例程序本身也表明了他们的所作所为(即使我准备好了打赌,没有人会遇到问题,但是(
(也要保持最佳状态,我认为使用sudo make安装安装构建结果是一个好主意,但是makefile没有卸载选项,在清洁安装方面,我很诚实。除非有人有一个想法吗?(
-
libfreetype.so.2.6
是由OGRE构建的,但不安装make install
。我不知道为什么。将其放置在编译器可以找到它的地方(sudo cp Dependencies/lib/libfreetype.so* /usr/local/lib/
(对我有用。我不喜欢这样做。 - 将其更改为
OgreBites::SDLK_ESCAPE
,并将其编译。