Ogre1.x学习笔记1——建立Ogre项目

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时,有以下几点需要注意:

  1. 链接时需要额外添加Ogre的几个库文件。
    这里需要添加OgreMainOgreBitesOgreRTShaderSystemzzip等4个库,因此需要添加-lOgreMain -lOgreBites -lOgreRTShaderSystem -lzzip 作为参数。
  2. 需要包含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源代码所在文件夹。
  3. 需要添加头文件路径。
    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/作为参数。
  4. 需要添加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

运行结果:
Ogre1在这个画面按Esc键即可退出。

猜你喜欢

转载自blog.csdn.net/willian113/article/details/106968681
今日推荐