目录
前言:
朋友搞 Qt 搭配 OSG 进行开发,自己本地试了下配置 OSG ,浪费了一天时间,头疼。。记录一下,方便后来的小伙伴儿。。
编译前准备软件环境:
1、Windows10系统
2、CMake(最新版)
3、VS2017(OSG官网配套第三方库,最高只能到2017这个版本)
4、Git(最新版)
关于硬件,配置越高越好吧(我的是 i7 10700k,OSG都要编译三个小时,日!)
编译前准备源码:
去官网依次下载源码、第三方库和数据资源(资源下载竟然也要TMD三个小时!!日!)
源码下载最新版(我下载时3.6.5)
下载完毕,将解压后的文件夹放进D:\OSG 目录下,这是源码加资源下载后的截图:
但是我看见x64不舒服,就把3rdParty_x64改为3rdParty,并且将其目录下的x64目录下的文件往上提一级,然后删除x64空文件夹。
由此图的样子:
改为此图的样子:
至此,源文件准备结束。
构建流程:
1、打开CMake-GUI,将D:\OSG\OpenSceneGraph\CMakeLists.txt拖动到CMake-GUI界面上,在生成目录后加一层/build目录,点击configure。
新弹出框选择VS2017,Optional platform for generator 输入x64,点击Finish。
2、Finish执行结束,进行二次设置。
ACTUAL_3RDPARTY_DIR:D:/OSG/3rdParty
BUILD_OSG_EXAMPLES :勾上
CMAKE_INSTALL_PREFIX:D:/OSG/OpenSceneGraph/
点击Configure。
3、Configure执行结束,将BUILD_MFC_ EXAMPLE打勾,点击Configure。
4、点击Generate,自此建构完成,结束后可以关闭CMake-GUI。
编译流程:
1、用VS2017打开OpenSceneGraph.sln(此文件在D:\OSG\OpenSceneGrap\build下)
2、菜单栏,点击“生成”、“批生成”,勾选ALL_BUILD对应的Debug和Release,点击“生成”。生成过程超TM长,大概两个多小时。
注:编译过程会遇到一些报错,百度一下基本都有答案(我只遇到了俩,在下面)
如:① 报std::max不识别,在对应头文件加#include <algorithm>;
② 报 “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
最后,编译成功。
3、菜单栏,点击“生成”,“批生成”,选择INSTALL的Debug和Release,点击“生成”。
使用流程:
1、追加 Path 环境变量:D:\OSG\OpenSceneGraph\bin 和 D:\OSG\OpenSceneGraph\build\bin 和 D:\OSG\3rdParty\bin(注意,是三个路径!!)
2、新加 OSG_FILE_PATH 变量:D:\OSG\OpenSceneGraph-Data
3、打开cmd,依次输入指令
osgversion(会输出版本号)
osgviewer cow.osg(会输出一张牛像,按键盘 Esc 键可退出)
osglogo(会输出一个英文logo,按键盘 Esc 键可退出)
进行验证。
编码验证:
新建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 键退出。
至此结束,感谢各位花费自己宝贵时间进行观看。。