花了大概10天左右的时间,终于把osg和osgearth编译好,中间出现各种错误,几乎想放弃,但最后还是编译出来啦,在这里我把我的编译过程给大家分享下,希望能够帮到各位。
第一步,下载所需要文件,编译osg需要三个文件osg、osg第三方库和osgdata,编译时需要用到cmake软件,我用的是vs2013和osg3.4
osg文件:http://www.openscenegraph.org/index.php/download-section/stable-releases 文件为OpenSceneGraph-3.4.0.zip
osg第三方库:http://www.osgvisual.org/wiki/Downloads#a3rdPartysmallpackageV10 文件为3rdParty_VS2013_v120_x86_x64_V9_full.7z
osgdata:http://www.openscenegraph.org/index.php/download-section/data 文件为OpenSceneGraph-Data-3.4.0.zip
cmake:https://cmake.org/download/ 文件为cmake-3.7.0-win64-x64.msi
第二步,在E盘新建一个OSG文件夹,并在里面新建三个子文件夹,名字分别是3rdParty,OpenSceneGraph和OpenSceneGraph-Data,解压上面三个压缩包到相应文件夹下面
第三步,下载qt安装文件和qt-vs-addin
qt文件http://download.qt.io/archive/qt/5.6/5.6.2/ 文件为qt-opensource-windows-x86-msvc2013-5.6.2.exe
vsaddin文件http://download.qt.io/archive/vsaddin/ 文件为qt-vs-addin-1.2.5.exe
第四步,安装qt5.6.2 这不网上有很多教程,这里不再赘述,可以参考http://blog.csdn.net/wangell/article/details/41117139和http://blog.csdn.net/yb844154912/article/details/50929327,vsaddin安装后,需要在环境变量中加上两个变量
变量名:QTDIR 变量值:D:\Qt\Qt5.6.0\5.6\msvc2013
变量名:path 变量名:%QTDIR%\bin
你装的VS2013没有过MFC,请务必到microsoft官网下载MultibyteMFC library for VS2013。否则编译过程中会出现找不到mfc***.lib之类的错误,可以参考http://blog.csdn.net/u011310341/article/details/51352330
第五步,首先在解压后的OpenSceneGraph-3.4.0文件夹里面新建一个build文件夹,用来存放编译内容,用vs2013打开CMakeLists.txt,在里面加两行代码
SET(DESIRED_QT_VERSION "5.6.2" CACHE STRING "") 5.6.2为安装的QT的版本
SET(CMAKE_PREFIX_PATH "D:\Qt\Qt5.6.2\program\5.6\msvc2013" CACHE PATH "") D:\Qt\Qt5.6.2\program\5.6\msvc2013 为QT的安装路径,加完保存,如下图
第六步,打开cmake软件,CMakeLists.txt文件拖到cmake界面上,选择路径,如图
build为刚刚新建的文件夹 点击configure,选择vs2013平台,然后3rdparty的路径为你第三方库解压后的路径,在BUILD...WITH_QT和BUILD....APPLICATIONS和BUILD...EXAMPLES上打勾,CMAKE_INSTALL_PREIFX的路径为刚刚新建的build路径,如图
继续点击configure,并把上面的Advanced打勾,BUILD_MFC_EXAMPLE打勾,继续configure,出现没有红的啦,这是点击generate,出现generating done,表明生成成功,如图
第七步,vs2013以管理员身份打开刚刚在build文件里面生成的OpenSceneGraph.sln文件,查看OSG core下面有没有osgQT工程,如图
如果没有,则有可能没有加第五步的代码,点击生成-批生成,勾选ALL_BUILD的Debug和Release,生成,大概等3-4个小时,就能成功,继续勾选INSTALL下面的Debug和Release,点击生成,大概几分钟就能生成成功,如果不报错,那么恭喜你,编译成功啦
第八步,数据转移,在D盘新建OSG文件夹,将E盘刚刚新建的build文件夹下的bin,include,lib文件夹拷贝到D:\OSG下,将E:\OSG\OpenSceneGraph-Data下的数据拷贝到E:\OSG\data下,这几个文件是OSG需要的
第九步,环境变量设置,OSG_FILE_PATH,变量值为D:\OSG\data,在PATH中添加D:\OSG\bin,cmd下输入osgversion,osglogo,osgviewer cow.osg进行检测
第十步,新建工程,点击属性-VC++目录,在包含目录添加D:\OSG\include,在库目录添加:D:\OSG\lib,在连接器-输入-附加依赖项加上
OpenThreadsd.lib
osgd.lib
osgDBd.lib
osgUtild.lib
osgGAd.lib
osgViewerd.lib
osgTextd.lib
这里可以参考http://blog.csdn.net/liuci3234/article/details/9313961
程序即可运行,先写到这里,下一篇将写osgearth的编译过程。