Openscenegraph的安装:
我的版本为vs2017+osg3.41+win10
主要参考https://blog.csdn.net/wangbingqian_110/article/details/78069061
http://bbs.osgchina.org/forum.php?mod=viewthread&tid=9223&highlight=osg%2Bvs2010&_dsign=253e9edb
库的话在这下载,附件里也有
库文件最好连接外网,然后通过osg国外官方网站下载这些库文件
https://download.csdn.net/download/qq_41471281/12049509
二、编译准备
为了编译的顺利进行,将下载的文件组织如下:
在D盘建立一个OSG的文件夹,然后其他文件如下放置:
D:\OSG\OpenSceneGraph:源码解压后放于此
D:\OSG\3rdParty:第三方依赖库解压后放于此
D:\OSG\data:数据包解压后放于此。
三、安装源码
1、安装CMake之后,打开CMake -gui.exe。
2、按下图所示,填写源码路径与结果路径。
3、点击Configure,进行设置,我的是vs2017,所以选择vs2017, x64 然后点击Finish。
4、接下来进行一些配置,主要有三个,在红色表格中找到ACTUAL_3RDPARTY_DIR,将其值设置为D:/OSG/3rdParty/x64、最后一定要到三方库的bin,include这个界面才可以,不用过多的配置
BUILD_OSG_EXAMPLES,值设置为ON、CMAKE_INSTALL_PREFIX,值为第一步中的结果路径。如下:
然后再次点击configure
5、点击Generate,自此建构完成。
四、编译
1、在第三步的结果路径中,找到OpenSceneGraph.sln,将其用VS2017打开(或者直接cmake的open projiect)。
选择生成、批生成,
对All_BUILD进行生成,选择(Debug和Release两个版本),这段编译时间很长,大概 4-5个小时。如果前面步骤没有错误的话,这一步不会报错,只有警告。设置详情如下图所示:
下面是我构建过程中的错误:
Osg安装过程中出现的错误:
OSG C2059语法错误常数,#undef RELATLVE 我是用#undef取消宏定义
Error
Error:
后来发现,还是我们在这个文件中定义的结构体,和winuser.h中定义的宏重复了,所以在这个代码中找到MessageBox,然后#undef MessageBox
Error
解决在工程属性->C/C++->预处理器->预处理器定义中 加入 WIN32_LEAN_AND_MEAN即可
这个在 语法错误“字符串”line2159 我把tagDATADIR这个结构体给注释了
然后在用vs2017的批生成的过程中,如果中途编译出现错误,最好直接解决掉,不然可能会影响下一步的编译。 所有出现的错误,都要上网找,然后尽量解决。我出现的错误大部分都是宏定义冲突的问题,大部分用#udef解决
如果遇到实在不能解决的,那就把那个项目卸载掉好了。但是只能卸载插件plugins的项目。我就卸载了三个
2、第1步完成后,再对INSTALL也进行相应生成编译。这段时间相应会短一点。如图:
如果没有错误注意:
按照这个创建个OSG文件夹,但是我INSTALL出错了,所以我是自己建的
ERROR 我在INSTALL时出错了,(setlocal的什么错误)然后参考http://www.osgchina.org/show.php?id=42博客里
手工创建,创建后如下:
五、环境变量
以上步骤进行完成后,对系统变量作如下设置:
1、添加系统变量:OSG_FILE_PATH,变量值为D:\OSG\data(与第二步中所建目录相对应)。
2、在PATH变量中添加:第三步结果目录中的bin目录。(我的install是手工创建的,所以bin目录为 )
配置完成后,可在命令行输入osgversion或osglogo进行测试。
注意:运行osglogo会出错大概就是ziblib没找到,只需要把上述提到的三方库中的同名的库复制到生成的bin目录下
复制到
然后就可以了。其余的按照开头提到的帖子,创建新项目就可以了。
需要注意的是:我们在vs项目中vc++和连接这个几个, #include和lib都是我们生成的文件,即cmake_prefix的文件下的bin目录中生成的,这样才有用
最后,用vc++使用的话,按照上述帖子中讲的,包含目录、库目录、附加依赖项配置好就可以了