您的位置:首页 > 编程语言

从源代码开始构建Ogre图文教程(Ogre 1.8 Source + VS2010)

2014-03-12 20:58 381 查看
//---------------------------------------------------------------------------------------------------------------------------------------------------

//前言:捣鼓了一整天Ogre源代码下引擎环境的构建,从官网WIKI到百度,

//再到谷歌,结合了各种猜想,参考了各种资料,

//最后终于成功的把OGRE从源代码中构建出来了,

//可谓是费尽心机,绞尽脑汁,行弗乱其所为了。。。

//什?什么?好吧,请忽略这最后一句,原谅我的冷笑话无厘头吧!!!

//----------------------------------------------------------------------------------------------------------------------------------------------------

首先,你需要了解从源代码构建Ogre的优点:

  源代码中拥有比SDK更多的IDE选择和不同的项目空间/解决方法配置。
同时,这也是通往了解Ogre是如何被设计和生成的学习途径,
你可以在源代码级别调试Ogre程序,看看其中函数之间的关系以及每个函数的作用,
甚至能了解到变量是如何协调工作的。
这也是得到最新改变,出错以及增进的版本的最佳途径。
(也就是说,你可以在源代码下适应更多的IDE平台环境和得到学习。)

好了,说了这么多,我们正式进入正题,可以从源代码开始
构建一个适应于VS2010
IDE的OGRE环境。
(VS2008下的IDE可以参考配置,方法大体是相同的。)

先决条件:
1.从官网下载页面点击"Download a source package",然后选择源代码下载包。
此处我选择最新版的OGRE 1.8.1 Source For Windows。
这里给出下载链接地址:http://www.ogre3d.org/download/source

2.确保电脑上安装了DirectX SDK,建议用Feb10或June10版的,没有的童鞋请到
http://www.microsoft.com/en-us/download/details.aspx?id=6812下载并安装。

3.包含dll,头文件,lib等内容的Dependencies,我们选用OgreDependencies_MSVC_20101231
在Old
Microsoft Visual C++ Precompiled Dependencies Package处下载,
(New版的下载链接我这边不知为何进不去。)
下载地址:http://www.ogre3d.org/download/source

3.需要Boost链接库,这是一个线程库,用于分页组件(官方说明是可选择安装,
不过我建议还是用上的好,所谓防患于未然嘛...)
我们用到目前为止最新的boost1.55。
下载地址:http://sourceforge.net/projects/boost/files/boost/1.55.0/

4.需要CMAKE制作工具,用到目前为止最新版的“cmake-2.8.12.2-win32-x86.exe”。
下载地址:http://www.cmake.org/cmake/resources/software.html

5.需要Visual Studio系列IDE,可以选择VS2008,VS2010,VS2012,这里以VS2010为例。
(注意,需要打SP1补丁,也就是Service
Pack 1, 如果没打补丁,CMAKE工具使用中可能会出错。)

好了,当你准备好这些工具后,便开始我们的OGRE搭建之旅吧!!

(1).将ogre_src_v1-8-1.exe安装至适当的目录中,此处安装至G:\OGRE_2010,
安装完成后会出现这样的文件。



(2).将Dependencies解压至该文件目录下,如图。



(3).打开Dependencies中src的OgreDependencies.VS2010.sln,
分别在Debug和Release下生成解决方案,完成后如图。
(提示:刚装DirectX SDK的同学记得将include和lib包含上去)



(5).编译boost库。
 #1.将boost_1_55_0解压,此处是G:\根目录。

 #2.编译bjam。
 <1>.从开始菜单处的vs2010的工具菜单进入命令提示窗口
(单击“开始”按钮,指向“所有程序”,指向“Microsoft Visual Studio 2010”,
指向“Visual Studio tools(工具)”,然后单击“Visual Studio 2010 command prompt(命令提示)” )



<2>.输入cd G:\boost_1_55_0定位到该文件目录下,然后输入bootstrap.bat建立Boost.Build engine,

DOS下运行完成后会看到这样的画面,并且在G:\boost_1_55_0下出现了b2.exe和bjam.exe这样两个文件。
(注意:此处及以下请根据所安装的目录的操作,请勿盲目跟从。)



出现b2.exe和bjam.exe



#3.设定编译环境(为了去掉编译器警告)

打开G:\boost_1_55_0\tools\build\v2\user-config.jam,并对其msvc版本进行修改,

原来:

# -------------------

# MSVC configuration.

# -------------------

# Configure msvc (default version, searched for in standard locations and PATH).

# using msvc ;

# Configure specific msvc version (searched for in standard locations and PATH).

# using msvc :8.0 ;

修改之后为:

# -------------------

# MSVC configuration.

# -------------------

# Configure msvc (default version, searched for in standard locations and PATH).

# using msvc ;

# Configure specific msvc version (searched for in standard locations and PATH).

# using msvc :10.0 ;
(若是想编译成VS2010版请改成10.0,

 PS:我用的文本编辑工具是nopepad++,很方便的工具,附上一张修改截图。)



#4.最终编译boost库
在DOS窗口中输入以下命令来执行bjam.exe:

bjam stage ^ --without-python ^ --toolset=msvc-10.0 ^ --build-type=complete ^ 

 --stagedir="G:\boost_1_55_0\vc10" ^ link=static ^ runtime-link=static 

 runtime-link=shared ^ threading=multi ^ debug release
输完后按回车~
(PS:编译至少需要半个小时,这个时候请不妨听听音乐,玩玩游戏,放松放松心情吧O(∩_∩)O)

先上图:



执行等待中......



stage:表示只生成库(dll和lib),

" ^ "符号表示与下面的命令连接,输入" ^ "后按回车

便可以继续输入命令(此处注意空格,不要把两个本应该分开的命令连起来了),

without/with:表示编译或不编译哪些库

toolset:表示编译工具集,VS2010为msvc-10.0

build-type:表示编译类型,complete为完全编译

stagedir:表示编译生成文件路径,此处是G:\boost_1_55_0\bin\vc10

link:表示生成动态链接库/静态链接库。生成动态链接库需使用shared方式,生成静态链接库需使用static方式。一般boost库可能都是以static方式编译,因为最终发布程序带着boost的dll感觉会比较累赘。

runtime-link:表示动态/静态链接C/C++运行时库。同样有shared和static两种方式,这样runtime-link和link一共可以产生4种组合方式,各人可以根据自己的需要选择编译。一般link只选static的话,只需要编译2种组合即可,即link=static runtime-link=shared和link=static runtime-link=static。

threading:表示单/多线程编译。默认指定为单线程,multi表示多线程方式,single表示单线程方式。

debug/release:表示编译debug/release版本。一般都是程序的debug版本对应库的debug版本,所以两个都编译。

#5.看到这样的画面后便表示boost编译成功了。



#6.对boost进行简单测试。
新建一个控制台WIN32工程,然后在新建的CPP中输入以下代码:
#include <boost/regex.hpp>

#include <iostream>

#include <string>

int main()

{
std::string line;
boost::regex pat( "^Subject: (Re: |Aw: )*(.*)" );

while (std::cin)
{
std::getline(std::cin, line);
boost::smatch matches;
if (boost::regex_match(line, matches, pat))
std::cout << matches[2] << std::endl;
}

}

然后在工程属性中添加包含目录G:\boost_1_55_0和库目录G:\boost_1_55_0\vc10\lib)



Boost会自动包含静态链接库,所以不用手动添加,好了,按F5运行一下,
若是出现黑色窗口则表明测试成功,我们编译的boost库可以使用!!!



#7.请注意,在编译过程中会产生中间过程文件,由于比较占空间,

现在编译成功之后可以删除这些中间过程文件。(竟然有2.75G之多)

(默认为G:\boost_1_55_0下的bin.v2 )



(5).CMAKE的使用。
#1.将下载的Cmake-2.8.12.2安装至目录,我将其安装至G:\根目录。

#2.设置环境变量(为了Cmake的Configure能正确的配置出boost和DirectX还有Ogre)

添加环境变量: BOOST_INCLUDEDIR  G:\boost_1_55_0
BOOST_LIBRARYDIR  G:\boost_1_55_0\vc10\lib
BOOST_ROOT
 G:\boost_1_55_0
 

若无DXSDK_DIR,添加   DXSDK_DIR   G:\DirectX\(你所安装目录)

若无OGRE_HOME,添加   OGRE_HOME   G:\OGRE_2010\ogre_src_v1-8-1



#3.打开G:\CMake 2.8\bin下的cmake-gui.exe ,

在Where is the source code中输入要编译的源代码位置,此处为G:/OGRE_2010/ogre_src_v1-8-1

在Where to build the binaries中输入要建立Ogre图形引擎的位置,此处为G:/OGRE_2010/Ogre_Build

点击Configure,配置编译器,选择Visual Studio 10.0, 点击Finish开始配置,等待完成。
(VS2010版本选择Visual Studio 10.0)



完成后截图:



然后我们查看一下BOOST有没有正确配置:



然后再看以下DirectX有没有正确配置:



若是没有正确配置,请检测以下环境变量有没有设置好,实在不行,就参照上面两幅图手动配置,
我这里的DirectX就是手动配置的。
(注意 :若是手动配置Boost, Debug的lib是带gd的,Release是不带s,也不带gd的。)

配置好之后,再按Configure,会添加手动的配置和默认配置进行再次配置,
此处显示出可以再配置DirectX 11,



然后再次按下Configure,等显示出全部变白后,就表示全部添加到默认配置了,如图:



#4.正式生成
此时便可以按下Generate生成了,生成完成后,底下会显示Generate done



(6).编译构建Ogre
#1.打开G:\OGRE_2010\Ogre_Build下的OGRE.sln



#2.分别在Debug和Release下生成解决方案。





#5.生成完成后将G:\OGRE_2010\ogre_src_v1-8-1\Dependencies中的
bin,include,lib合并到G:\OGRE_2010\Ogre_Build当中,再将
G:\OGRE_2010\ogre_src_v1-8-1\Samples中的media复制到
G:\OGRE_2010\Ogre_Build\Samples中,
然后启动G:\OGRE_2010\Ogre_Build\bin\release下的SampleBrowser.exe

附上一张成功启动后的截图:



好了,今天的教程就到这里了,祝大家愉快成功!!!

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息