1.下载需要的文件
(1)OSG3.4.0源码 http://www.openscenegraph/index.php/download-section/stable-releases
OSG for vs2013第三方库 http://www.openscenegraph/index.php/download-section/dependencies
OSG data数据 http://www.openscenegraph/index.php/download-section/data
(2)QT 5.8.0 (包括QT本身软件+插件)
http://master.qt.io
步骤CSDN http://blog.csdn/qq_35040828/article/details/78590895
2.安装软件
(1)VS2013安装,参考网上资料;
(2)QT5.8.0软件+插件的安装:
①软件安装,步骤简单,基本点击下一步即可;
②插件安装,步骤简单,不过在安装完后需要在VS2013中配置一下
③ Qt装好后需要设置系统环境变量,在Path里加入X:\Qt\Qt5.4.2\5.4\msvc2013l\bin
参考:http://blog.csdn/qq_35040828/article/details/53206001
3.OSG3.4.0源码编译
步骤参考:http://blog.csdn/qq_35040828/article/details/51714228
(1)将1中下载的三个文件分别解压如图:
(2)在OpenSceneGraph同级文件夹下创建一个build和osg_sdk文件夹,之后的编译工程都在此文件夹下进行,不至于最后文件都放在一起不好区分。
(3)安装CMake。
(4)打开CMake(cmake-gui),然后将OpenSceneGraph文件夹下的CMakeLists.txt文件拖放到CMake中,然后更改编译路径,如下图所示:
(5)点击Configure按钮,然后在弹出的对话框中选择VS2013 WIN64,如下图所示:
(6)点击完成之后,会出现以下界面,中间会出现一片红色,逐一修改:
(7)修改
a,ACTUAL_3RDPARTY_DIR修改为第二步解压的3rdparty路径,记得选择里面得x64路径。(注意:如果不更改目录选择默认的,有可能第三方插件有部分会没有,比如读取文字字体插件以及读取png图片插件,没有这些插件就无法读取字体和图片)
b,BUILD_DOCUMENATION(文档)可选。
c,BUILD_OSG_EXAMPLES(例子)强烈建议选上。
d,BUILD_OPENTHREADS_WITH_QT(如果想要生成Qt相关的工程,也要选择buildopenthreads with Qt;默认勾选的(注意,QT的path路径必须设置好))。
e,CMAKE_INSTALL_PREFIX(输出路径, 就是将库文件以及bin文件安装到那个位置,这里我们选择:),更换为第二步创建的osg_sdk文件路径(D:/OSG3.4.0/osg_sdk)。
(7)点击Configure之后会出现如下图所示,然后将BUILD_MFC_EXAMPLE和Advanced打上对勾,如下图所示:
(8)再次点击Configure,最后就不会出现红色区域,如下界面:
如果这过程中下面的这个区域:
出现了红色的乱码,我提醒下可能是跟你的VS10的一些默认项目文件存放的路径有关,之所以会乱码是因为可能上面说到的路径有中文。所以建议不要去修改VS10的一下默认的存放的路径,避免不必要的错误。当然随着这步勾选上BUILD_MFC_EXAMPLE,正常的情况应该是中间区域的红色会全部消失,但是下面的区域你去查看会发现任然有些红色的语句警告,这无关紧要。可继续进行下一步。
(9)最后点击Generate按钮,最后生成相应的工程,可在D:\osg3.4.0 \build文件夹下生成相应的信息,如下图所示:
CMake用完可关闭。
(10)打开OpenSceneGraph.sln进行编译,在vs中选择生成->批生成->然后选择ALL_BUILD的Debug和Release,如下图所示,然后选择生成:
(11)点击生成之后就进入了编译,这个过程大概要4个小时,如下图所示,编译全部成功
失败的地方查看一下,如果是你不需要的就可以不用改了
我遇到的问题是缺少mfc120d.lib,原因是VS2013的MFC.lib丢失了,需要重新安装下,参考 http://blog.csdn/qq_35040828/article/details/78597005
安装好后,重新生成这俩个项目即可
(12)编译完成之后再次打开批处理,将ALL_BUILD的Debug和Release对勾去掉,然后选择INSTALL的Debug和Release版本,点击生成,如下图所示:
(13)这个过程就时间就很短了,最后生成结果如下图所示:
(14)到此osg编译完成。
4.OSG3.4.0+VS2013+QT5.8.0使用
编译完成后,运行build里面的bin中的exe,有些纹理、模型数据是丢失的,因为没有配置系统环境,方便其需找到Data路径。
(1)系统变量配置
右击“计算机”,然后“属性”,在计算机属性窗口的左边有个高级系统设置,
对系统变量设置如下:
① data数据环境变量:OSG_FILE_PATH: D:\OSG3.4.0\Data 若无此变量,自己在电脑中添加
② 建立一个文件夹命名SDK,将osg_sdk与build中的bin、include、lib拷进来,设置系统变量有:
PATH: D:\OSG3.4.0\SDK\bin
③ 第三方库的bin设置系统变量:PATH:D:\OSG3.4.0\3rdParty\x64\bin
(2)新建OSG工程测试
a)在VS2010下新建WIN32控制台程序,空白
b)添加一个cpp
c)输入以下代码:
#include<osgViewer/Viewer>
#include<osgDB/ReadFile>
intmain( int argc, char **argv )
{
osgViewer::Viewerviewer;
viewer.setSceneData(osgDB::readNodeFile( "cow.osg" ) );
returnviewer.run();
}
d)右键项目,选择“属性”,选择“VC++目录”,在包含目录添加:D:\OSG3.4.0\SDK\include
在库目录添加:D:\OSG3.4.0\SDK\lib
将D:\OSG3.4.0\OpenSceneGraph下的bin,include,lib文件夹拷贝到D:\OSG3.4.0\SDK中,选择文件夹合并,否则将会出现基本头文件链接不上
e)打开项目属性的链接器,输入里,附加依赖项加上:
OpenThreadsd.lib
osgd.lib
osgDBd.lib
osgFXd.lib
osgGAd.lib
osgManipulatord.lib
osgParticled.lib
osgShadowd.lib
osgSimd.lib
osgTerraind.lib
osgTextd.lib
osgUtild.lib
osgViewerd.lib
f)运行,效果如下图:
(3)可能出现的错误
a). gl.h编译出错 添加头文件#include<Windows.h>即可!
b).出现无法解析的外部文件,说明库没连接上,但是其实是链接上了的,这时只需要改动 解决方案配置与解决方案平台,Debug和release与X64和WIN32互相搭配试一试。
,没有就新建一个
c).出现计算机中丢失zlibd1d.dll,将*:\OSG\3rdParty\x64\bin或者X64下的zlibd1.dll、zlib1.dll和zlibd.pdb文件拷到D:/OSG/OpenSceneGraph-3.0.1\bin\bin目录下,这样应该就可以运行了。
d).根据不同的电脑选择。可能出现X86与X64之间的问题,原因在于平台没有选对,最好的方式是重新建立一个新项目,然后代码进行复制后,跟第一个问题一样,选择对应的搭配尝试。
因为是在word里面记录的,图片不显示,就懒得贴上去了,步骤没错就行
更多推荐
OSG3.4.0+QT5.8.0+VS2013+WIN10 64BIT
发布评论