一、WIN10+VS2017+OSG3.6.5环境部署

1,099 阅读3分钟

前言:

朋友搞 Qt 搭配 OSG 进行开发,自己本地试了下配置 OSG ,浪费了一天时间,头疼。。记录一下,方便后来的小伙伴儿。。

编译前准备软件环境:

1、Windows10系统

2、CMake(最新版)

3、VS2017(OSG官网配套第三方库,最高只能到2017这个版本)

4、Git(最新版)

关于硬件,配置越高越好吧(我的是 i7 10700k,OSG都要编译三个小时,日!)

编译前准备源码:

去[官网](Home (openscenegraph.org))依次下载[源码](GitHub - openscenegraph/OpenSceneGraph at OpenSceneGraph-3.6.5)、第三方库和数据资源(资源下载竟然也要TMD三个小时!!日!) 1.png

源码下载最新版(我下载时3.6.5) 2.png

下载完毕,将解压后的文件夹放进D:\OSG 目录下,这是源码加资源下载后的截图: 3.png

但是我看见x64不舒服,就把3rdParty_x64改为3rdParty,并且将其目录下的x64目录下的文件往上提一级,然后删除x64空文件夹。 由此图的样子: 4.png

改为此图的样子: 5.png

至此,源文件准备结束。

构建流程:

1、打开CMake-GUI,将D:\OSG\OpenSceneGraph\CMakeLists.txt拖动到CMake-GUI界面上,在生成目录后加一层/build目录,点击configure。 新弹出框选择VS2017,Optional platform for generator 输入x64,点击Finish。 6.png

7.png

2、Finish执行结束,进行二次设置。

ACTUAL_3RDPARTY_DIR:D:/OSG/3rdParty

BUILD_OSG_EXAMPLES :勾上

CMAKE_INSTALL_PREFIX:D:/OSG/OpenSceneGraph/

点击Configure。 8.png

3、Configure执行结束,将BUILD_MFC_ EXAMPLE打勾,点击Configure。 9.png

4、点击Generate,自此建构完成,结束后可以关闭CMake-GUI。 10.png 11.png

编译流程:

1、用VS2017打开OpenSceneGraph.sln(此文件在D:\OSG\OpenSceneGrap\build下)

2、菜单栏,点击“生成”、“批生成”,勾选ALL_BUILD对应的Debug和Release,点击“生成”。生成过程超TM长,大概两个多小时。 12.png

注:编译过程会遇到一些报错,百度一下基本都有答案(我只遇到了俩,在下面),如:

① 报std::max不识别,在对应头文件加 #include "algorithm"

13.png

② 报 “LCMapStringEx”: 找不到标识符,生成的stdafx.h头文件添加

#define _WIN32_WINNT 0x0A00
#define _ATL_APARTMENT_THREADED
#define _USING_V110_SDK71_
#define _ATL_XP_TARGETING

并在所在工程(一共两个,分别是 Examples osgsimplegl3 和 Examples osgviewerMFC )的属性配置(Debug和Realse都需要)里,添加

_WIN32_WINNT=0x0A00
NTDDI_VERSION= 0x06030000
WINVER=0x0A00

14.png

15.png

最后,编译成功。

16.png

3、菜单栏,点击“生成”,“批生成”,选择INSTALL的Debug和Release,点击“生成”。

17.png

18.png

使用流程:

1、追加 Path 环境变量:D:\OSG\OpenSceneGraph\bin 和 D:\OSG\OpenSceneGraph\build\bin 和 D:\OSG\3rdParty\bin(注意,是三个路径!!20.png

2、新加 OSG_FILE_PATH 变量:D:\OSG\OpenSceneGraph-Data 21.png

3、打开cmd,依次输入指令

osgversion    # 会输出版本号
osgviewer cow.osg    # 会输出一张牛像,按键盘 Esc 键可退出
osglogo    # 会输出一个英文logo,按键盘 Esc 键可退出

进行验证。

22.png

23.png

编码验证:

新建VS2017 C++空工程,添加新.cpp 文件,输入代码:

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

配置:x64,Debug,

① 添加头文件路径:D:\OSG\OpenSceneGraph\include;

② 添加 lib 库引用路径:D:\OSG\OpenSceneGraph\lib;

③ 引用lib库,输入:

OpenThreadsd.lib 
osgd.lib 
osgDBd.lib 
osgUtild.lib 
osgGAd.lib 
osgViewerd.lib 
osgTextd.lib

④ 点击键盘 F5 编译运行,会弹出上面那个牛像图,点击 Esc 键退出。

24.png

至此结束,感谢各位花费自己宝贵时间进行观看。。