Ogre1学习笔记1——建立Ogre项目
子曰:先跑起来再说。
本文将介绍构建Ogre项目的一般流程,代码部分采用官方的Bootstrap.cpp中的内容。
本文参考了官方英文教程Setting up an OGRE project,但采用Makefile来建立Ogre项目,而不是英文教程中的cmake来建立。
复制代码并编写Makefile
Bootstrap.cpp的源代码可以在Ogre源码中找到,其具体位置在ogre-1.12.6/Samples/Tutorials/Bootstrap.cpp中。
在写Makefile时,有以下几点需要注意:
- 链接时需要额外添加Ogre的几个库文件。
这里需要添加OgreMain、OgreBites、OgreRTShaderSystem和zzip等4个库,因此需要添加-lOgreMain -lOgreBites -lOgreRTShaderSystem -lzzip作为参数。 - 需要包含
zzip的所在路径。
zzip是在编译安装Ogre源码时生成的库文件,其路径是ogre-1.12.6/build/Dependencies/lib,因此在编译时需要添加-L/home/username/Documents/ogre-1.12.6/build/Dependencies/lib,这里/home/username/Documents/是Ogre源代码所在文件夹。 - 需要添加头文件路径。
Bootstrap.cpp中所需头文件所在目录有3个:/usr/include/OGRE/、/usr/include/OGRE/Bites/和/usr/include/OGRE/RTShaderSystem/,因此在编译时需要添加-I/usr/include/OGRE/ -I/usr/include/OGRE/Bites/ -I/usr/include/OGRE/RTShaderSystem/作为参数。 - 需要添加rpath
因为zzip所在目录不是标准位置,因此需要添加-rpath,否则会出现编译成功但运行时报错的问题。因此在编译时需要添加-Wl,-rpath /home/username/Documents/ogre-1.12.6/build/Dependencies/lib作为参数。
此外,还需要将/usr/share/OGRE/中的resources.cfg拷贝到当前文件夹,以免出现找不到Sinbad.mesh的错误。
运行代码
完整的Makefile文件类似这个样子:
CXX = g++
CXXFLAGS = -std=c++17 -g -Wall
LIBS = -lOgreMain -lOgreBites -lOgreRTShaderSystem -lzzip
LIB_PATH = -L/home/username/Documents/ogre-1.12.6/build/Dependencies/lib
RPATH = -Wl,-rpath /home/username/Documents/ogre-1.12.6/build/Dependencies/lib
INCLUDE = -I/usr/include/OGRE/ -I/usr/include/OGRE/Bites/ -I/usr/include/OGRE/RTShaderSystem/
TAR = Bootstrap
EXT =
$(TAR)$(EXT): $(TAR).cpp
$(CXX) $< -o $@ $(CXXFLAGS) $(RPATH) $(LIBS) $(LIB_PATH) $(INCLUDE)
clean:
-rm $(TAR)$(EXT)
此时当前文件夹中应该是这个样子:
.
├── Bootstrap.cpp
├── Makefile
└── resources.cfg
运行代码:
make
./Bootstrap
运行结果:
在这个画面按Esc键即可退出。

本文详细介绍使用Makefile构建Ogre项目的步骤,包括复制官方Bootstrap.cpp代码、设置编译参数、链接库文件及运行测试代码的过程。
383

被折叠的 条评论
为什么被折叠?



