大学毕业后一直从事银行信贷工作,三年的时间,自己改变了好多,偶尔看到书架上落满灰尘的各种计算机书籍、自己画的板子、整理的实验笔记才发现自己早已没了当年钻研技术的激情与魄力。生活的压力让自己变得患得患失,想起以前,总把自己关在实验室里,沉溺在计算机的世界里,感觉自己在这里可以创造一切,而短短的三年,才真正的发现自己只不过是一个无力的小人物,混迹在社会的边缘。一直想重拾计算机技术,哪怕每天下班再苦再累,也算是对得起自己大小追求的梦想。
大学里做过很多的东西,但无一不是界面简单丑陋,有的甚至只有命令行,所以这次打算从UI下手,做一套属于自己系统。综合考虑打算采用OGRE+CEGUI1.9的搭配。具体平台为:Macbook Air 2013、OSX10.9、Xcode5。本来以为很简单的事情,在实际使用过程中却遇到了各种问题,现在想来一方面是因为以前从来没再MAC平台上做过开发,另一方面真的要对国内的网络信息进行吐槽了,记的上大学的时候,百度搜出来的东西还有利用价值,现在再搜索,完全都是一切垃圾中的垃圾,OGRE1.6、1.7,CEGUI0.4、0.6、0.7各种老掉牙的文章还坚挺在搜索排行的首位。GOOGLE搜索的又全都是英文,我就这样,每天下班利用挤出来的时间,看一会英文资料,自己实践一会,鼓捣了好久才编译成功。想必还有很多初学者跟我一样痛苦,于是有了写下学习笔记的想法。再次申明,仅仅是我个人业余的娱乐,顺便记录一下存在的问题,作为一个三年基本没有碰过编程的人,本篇文章仅仅适合最菜的初学者作为参考,欢迎大家批评指正。
说了一堆废话,现在切入正题:OGRE的编译。
一、编译BOOST(编译OGRE依赖库并不需要boost,但OGRE会用到,所以先编译了把):
1、去官网下载源码我使用的是最新的1.55。
2、解压后按照此网址的教程进行编译即可。http://stackoverflow.com/questions/18888327/using-boost-on-xcode-5-apple-llvm-5-0
3、编译boost的文章有很多,基本没什么太大差别,参数配置上我没有过多研究,直接编译全部的库,需要注意的一点是编译器需要选择toolset=clang,编译参数参考如下:./b2 toolset=clang --without-mpi cxxflags="-arch i386 -arch x86_64 -fvisibility=hidden -fvisibility-inlines-hidden -std=c++11 -stdlib=libc++ -ftemplate-depth=512" linkflags="-stdlib=libc++" link=static stage 这并不是我最终使用的参数,配置的方法各种各样,但次数一定要注意toolset一定要=clang,另外cxxflags="-arch i386 -arch x86_64会编译32bit与64bit的库,方便以后在Xcode中的链接使用,否则会出现链接错误。
编译完成后把库文件及头文件拷贝到单独的文件夹里方便使用。
二、安装CMAKE
因为官网上没有OSX10.9下直接可以用的SDK,所以本文所有的库全部为由源代码编译,这就需要用到CMAKE来配置编译参数了,下载地址:http://www.cmake.org/cmake/resources/software.html,我使用的是cmake-2.8.12.2-Darwin64-universal.dmg 下好后直接双击安装,没什么难度。
三、编译OOGREDEPS。
1、OGREDEPS为包含了OGRE所需的各种库,所以需要先编译OGREDEPS,下载地址:https://bitbucket.org/everyday85/ogredeps/src/70ef5cdddebb991ad69481250efde0798b5112b8/src/?at=default。这里说明一下,这里的源码要用Mercurial客户端同步到本地。我用的是这个网站推荐的source tree(如图)
直接点击下面的链接下载安装即可,没有任何难度。安装完成后重启Safari,点击蓝色check out按钮,Source Tree软件会自动启动,如图:
选好位置,点击Clone即可。不知道什么问题,这个软件特别慢,刚开始等了10分钟都没有反应,我还以为安装有问题,准备研究时朋友叫去吃饭,回来时却已经同步好了,神奇。(ogre与ogredeps的同步方法都一样,以后不再赘述,反正点好等着就行了我也不知道用了多长时间)
2、下载好源码后,就可以开始编译了,建议先把源码打包备份一份。重新下一份太漫长了。
3、打开实现装好的CMAKE。我使用的是窗口界面。如图:
最上面“where is the source code ”后面选择你的源码的文件夹,“where to build the binaries”后面输入你源码在的文件夹/build即可,这个build文件夹可以自己命名。写好后点击Configure按钮。
使用默认编译器即可,点击Done。CMAKE会自动检查配置参数,完成后如图:
上面红色的选项指的是新发现的参数,需要再次点击Configure按钮进行配置。另外可以选中上面Advance复选框查看全部配置参数。search里面可以输入关键字在属性内进行搜索。
这几个属性就是配置哪些库需要编译,全部默认即可,OGREDEPS里面没有什么好配置的。再次点击Configure按钮确认配置,然后点击Generate按钮生成工程文件即可。下面的红色问题中的警告不用理会,目前发现不影响使用。
4、点击Generate按钮后会再上面配置的“build”文件夹下生成一个OGREDEPS.xcodeproj工程,双击打开即可。
进入Xcode5之后,需要进行几个配置:
(1):Base SDK需要重新选择,默认的有错误,提示NotFound。如图:
选择上面第三个,Latest OS X 10.9。当然,Iphone或者Ipad上就要选IOS7.0了,本文仅讨论MAC上的使用。按着shift选中所有的Targets,全部的属性都改正过来。如图:
另外,吧OS X Deployment Target 选为 OSX 10.9(全部都要改,包括上面的PROJECT里面的。如图:
这两个属性在以后的每一个Xcode工程里都要配置成这样。按道理OS X Deployment Target 确定的是该程序支持的最低OSX版本,选择10.7以后的应该都没有问题,但实际操作工程中编译OGRE会有中奇怪的错误所以我全部统一为10.9了,兼容性问题以后再解决吧。
配置完成后,单击左上角的箭头编译即可。 整个过程我没遇到任何问题。编译成功后再次选择编译Target为install,这一部的主要目的是把生成的库文件及相关头文件自动放到一个文件夹里。如图:
再次编译,Xcode会把所有的库及头文件复制到build文件夹下的ogredeps文件夹下:
里面一个include 一个lib文件夹
至此OGRE所需的依赖库就全部编译成功了,只要配置好参数,没有任何难度。如果CMAKE或者编译时遇到错误,Google一下即可,不要百度上关于老版本的使用方法或者debug,我开始的时候看了很多百度上的内容,没有任何作用反而走了很多弯路。
最后把整个ogredeps文件夹拷贝到OGRE源码目录下,并重命名为Dependencies。
今天先到这里,明天还要上班,有时间继续更新。晚安。