OSG学习:WIN10系统下OSG+VS2017编译及运行

本文转载自http://blog.csdn.net/wangbingqian_110/article/details/78069061

一、资料准备 

1、OSG源码(OpenSceneGraph-3.4.1 release 稳定版本)。

2、OSG第三方依赖库(3rdParty_VS2017_v141_x64_V11)。 
注:第三方库版本必须与Visual Studio版本相对应,本文所用只适用于Visual Studio2017 x64,,平台工具集版本为v141的情况下。

3、数据包(OpenSceneGraph-3.4 standard dataset)。

4、编码工具(CMake)。

如果下载不了,可以直接从我的资源里下载OSG源码、第三方依赖库、数据……CSDN最近改版,资源积分不能设置为0……

5、编译教程

6、OpenSceneGraph-3.4.1 release 编译好的稳定版本

链接:https://pan.baidu.com/s/1sJKLvuR1Jwxgn3KzGT1DWA 密码:45kr

 

 

二、编译准备

为了编译的顺利进行,将下载的文件组织如下: 
在D盘建立一个OSG的文件夹,然后将下载好的文件如下放置: 
D:\OSG\OpenSceneGraph:源码解压后放于此 
D:\OSG\3rdParty:第三方依赖库解压后放于此 
D:\OSG\data:数据包解压后放于此。

 

 

三、安装源码 

1、安装CMake之后,打开CMake -gui.exe。 
2、按下图所示,填写源码路径与结果路径。 

3、点击Configure,如下图所示进行设置,然后点击Finish。 
 
4、在第一张图的红色表格中找到ACTUAL_3RDPARTY_DIR,将其值设置为D:/OSG/3rdParty、找到BUILD_OSG_EXAMPLES,值设置为ON,找到CMAKE_INSTALL_PREFIX,值为第一步中的结果路径。然后再点config,进行配置。
5、点击Generate,然后等待建构完成。 如果觉得没配置对,重新配置后再点config进行配置,然后再点Generate生成,会将之前的工程冲掉。

 

 

四、编译 

1、在第三步的结果路径中,找到OpenSceneGraph.sln,将其用VS2017打开。 
 在菜单栏选择生成——批生成,对All_BUILD进行生成,选择(Debug和Release两个版本),这段编译时间很长,大概 4-5个小时。如果前面步骤没有错误的话,这一步不会报错,只有警告。设置详情如下图所示: 
 
2、第1步完成后,再打开批生成对INSTALL也进行相应生成编译(上一步已勾选的二者要取消勾选)。这段时间相应会短一点。如图: 
 
 

 

 

五、环境变量 

以上步骤进行完成后,对系统变量作如下设置: 
1、添加系统变量:OSG_FILE_PATH,变量值为D:\OSG\data(与第二步中所建目录相对应)。 
2、在PATH变量中添加:第四步结果目录中的bin目录。 
 配置完成后,可在命令提示符cmd中输入osgversion或osglogo进行测试,也可以输入osgviewer cow.osg,会出现下面的牛。 成功出现则说明系统配置成功。


 

 

 

六、新建OSG项目测试 

1、在VS2017下新建C++控制台程序。 

2、右键项目,选择“属性”,顶部平台选择x64,左侧配置属性选择“VC++目录”,在包含目录添加:第四步结果目录中的include目录。在库目录添加:第四步结果目录中的lib目录。具体情况如下图: 

OSG学习:WIN10系统下OSG+VS2017编译及运行_第1张图片

3、选择左侧“C/C++”中的“预处理器”,在预处理器定义中增加WIN32;(记得用分号把它与后面的字符隔开):

 OSG学习:WIN10系统下OSG+VS2017编译及运行_第2张图片

4、选择左侧“链接器”的“输入”,在附加依赖项添加: 
OpenThreadsd.lib 
osgd.lib 
osgDBd.lib 
osgUtild.lib 
osgGAd.lib 
osgViewerd.lib 
osgTextd.lib 

 注:在编译生成的lib文件中,每个lib文件有一对名称相似的文件,其中文件名最后一个字母为“d”的为Debug版本所使用的,没有“d”的为Release版本所使用的。 

5、完成上面修改后关闭属性对话框,查看顶部工具栏中的配置选项,选择“x64”。

6、在自己的cpp文件中输入以下代码:

#include "stdafx.h"
#include 
#include 

int main(int argc, char **argv)
{
    osgViewer::Viewer viewer;
    viewer.setSceneData(osgDB::readNodeFile("cow.osg"));
    return viewer.run();
}

运行,出现以下效果说明C++项目中配置成功。

你可能感兴趣的:(OSG(Open,Scene,Graph))