Ogre3D:构建示例程序(Samples / Tutorial / Bootstrap.cpp)

时间:2018-02-19 19:48:04

标签: c++ build cmake ogre ubuntu-17.10

所以这就是我想要实现的目标:

首先,我使用的是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没有卸载选项,而且在清理安装时我很难受。除非有人有个主意吗?)

1 个答案:

答案 0 :(得分:0)

  1. libfreetype.so.2.6由Ogre构建,但未由make install安装。我不知道为什么。把它放在编译器可以找到的地方(sudo cp Dependencies/lib/libfreetype.so* /usr/local/lib/)对我有用。我不喜欢这样做。
  2. 将其更改为OgreBites::SDLK_ESCAPE并进行编译。