完成OSG3.4编译环境

来源:互联网 发布:光纤三端口环形器原理 编辑:程序博客网 时间:2024/05/21 06:21

Win7下 osg+vs2010环境搭建
一.相关准备

a) Osg源码
当前最新版:OpenSceneGraph的3.0.0.zip
下载链接:
http://www.openscenegraph.org/downloads/stable_releases/OpenSceneGraph-3.0/source/OpenSceneGraph-3.0.0.zip

b) Osg第三方库
3rdParty_VC10_x86_x64.zip
http://members.iinet.net.au/~bchrist/3rdParty_VC10_x86_x64.zip

c) 数据包
当前最新版:OpenSceneGraph-Data-3.0.0.zip
下载链接:
http://www.openscenegraph.org/downloads/stable_releases/OpenSceneGraph-3.0/data/OpenSceneGraph-Data-3.0.0.zip

d) 安装源码工具
cmake-2.8.4-win32-x86.exe。

e) 安装VS2013

根据网上教程进行安装(简单)

f) Qt5.5.1

在VS中开发程序,需要下载Qt安装包和Qt的VS插件。
我用的版本是Qt5.1.1 for Windows(VS2010,OpenGL)、VisualStudio Add-in 1.2.2 for Qt5。
Qt装好后需要设置系统环境变量,在Path里加入D:\Qt\Qt5.1.1\5.1.1\msvc2010_opengl\bin
下载地址:http://download.qt.io/archive/qt/


二.开始编译

a) 利用批处理命令编译


b) 利用cmake-GUI检查OSG代码的关联性错误
  1.)打开CMake -gui.exe
  2.)源码OpenSceneGraph-3.0.0.zip解压后,将里头的CmakeLists.txt,拖到Cmake界面

如图:

  3.)点击Configure,选择Visual Studio 10(x86),finish后进行相关设置:
ACTUAL_3RDPARTY_DIR值D:/OSG/3rdParty;
BUILD_OSG_EXAMPLES :ON
CMAKE_INSTALL_PREFIX:D:/OSG/OpenSceneGraph/;
如下图:

  4.)点击Configure后,将Advanced打勾,将BUILD_MFC_ EXAMPLE设置为on,然后进行最后一次的Configure配置
  5.)点击Generate,自此建构完成

四.编译阶段

a) 用VS2010打开OpenSceneGraph.sln(此文件在D:\OSG\OpenSceneGraph下),

生成-批生成,对All_BUILD进行生成,选择(Debug和Release两个版本),这段编译时间是很长的,估计4-5个小时。

b) 第1步完成后,再对INSTALL也进行相应生成编译。这段时间相应会短一点。

五.数据转移

在C盘新建OSG文件夹

将D:\OSG\OpenSceneGraph下的bin,include,lib文件夹拷贝到C:\OSG下,将D:\OSG\OpenSceneGraph-Data-3.0.0下的数据拷贝到C:\OSG\data下;这几个文件是OSG需要的。

六.环境变量设置

对系统变量设置如下:

OSG_FILE_PATH: C:\OSG\data

PATH:C:\OSG\bin;

可在命令行进行测试osgversion,osglogo,osgviewer cow.osg。

七.新建OSG项目测试

a) 在VS2010下新建WIN32控制台程序

b) 添加一个cpp

c) 输入以下代码:

 

#include<osgViewer/Viewer>

#include<osgDB/ReadFile>

int main( int argc, char **argv )

{

osgViewer::Viewer viewer;

viewer.setSceneData( osgDB::readNodeFile( "cow.osg" ) );

return viewer.run();

}

d)右键项目,选择“属性”,选择“VC++目录”,在包含目录添加:C:\OSG\include

在库目录添加:C:\OSG\lib.

e) 打开项目属性的链接器,输入里,附加依赖项加上:

OpenThreadsd.lib

osgd.lib

osgDBd.lib

osgUtild.lib

osgGAd.lib

osgViewerd.lib

osgTextd.lib

f)运行,效果如下图:




0 0