OSG配置步骤

1.基本环境

Win10+VS2015
OSG3.6.3 + CMake3.12.2 + 3rdParty + OSG-Data-3.0.0

来源:

2. CMake出OSG安装包

用CMake打开源码位置,设置好生成的安装包位置,先点Configure然后再点Generate,
(注意要选择3rdParty的位置
OSG配置步骤

3. 生成OSG库

在OSG安装包的位置,打开OpenSceneGraph.sln文件开始生成:
生成—>批生成—>勾选debug和release两个版本(x64)开始生成,如下图生成成功:
OSG配置步骤
把生成OSG库文件的bin、include、lib复制到C:\OSG目录下,并在该目录下新建data文件,放入OSG-Data-3.0.0里的文件,OSG文件夹如下图:
OSG配置步骤

4. 环境变量配置和VS的目录配置

  • 设置环境变量:
    用户变量的PATH中添加路径 C:\OSG\bin
    系统变量中添加新变量OSG_FILE_PATH为 C:\OSG\data
  • 设置VS工程目录:
    C/C++ -->常规–>附加包含目录;--------添加OSG库的include目录
    链接器–>常规–>附加库;--------添加OSG库的lib目录
    链接器–>输入–>附加依赖项;--------添加.lib文件的依赖项如下
    :--------
    kernel32.lib
    user32.lib
    gdi32.lib
    winspool.lib
    shell32.lib
    ole32.lib
    oleaut32.lib
    uuid.lib
    comdlg32.lib
    advapi32.lib
    osgViewer.lib
    osgText.lib
    opengl32.lib
    osgGA.lib
    osgDB.lib
    osgUtil.lib
    osg.lib
    OpenThreads.lib

5、OSG测试

  1. CMD下输入命令:osgviewer cow.osg成功运行测试用例—牛
  2. 新建工程,如上面配置好工程属性,输入代码,成功运行测试用例—飞机
#include <Windows.h>
#include<osgViewer/Viewer>
#include<osgDB/ReadFile>
int main(int argc, char **argv)
{
osgViewer::Viewer viewer;
viewer.setSceneData(osgDB::readNodeFile("cessna.osg"));
return viewer.run();
}

6、遇到的问题及解决方法

  1. CMD下运行osgviewer cow.osg,提示命令osgviewer不存在。
    解决:正确环境变量配置;查看bin目录下是否有osgviewer.exe文件和osgviewerd.exe,若只有d结尾的debug版。的osgviewerd.exe文件,则说明缺少了release版,重新生成OSG库文件,记得勾选release版本。
  2. 测试工程生成解决方案时遇到无法读取xxx.lib文件的问题。
    解决:可能是VS工程属性目录配置出错,或生成OSG库文件是生成失败,缺少了对应文件,对应解决。
  3. 测试工程生成解决方案时报出LNK2019:无法解析的外部符号。
    解决:工程用了x86模式编译,而OSG的库文件是x64的,用x64模式编译即可。
  4. 测试工程生成解决方案时报出无法识别GL.h文件里字符的问题。
    解决:给工程添加#include<windows.h>头文件即可,具体问题不详。

总结:LNK的问题都是链接过程的问题,链接过程的问题就是lib文件的问题,可能lib文件出错(x86和x64区别)、缺失或工程属性中路径出错。

参考博客:
https://blog.****.net/wangshubo1989/article/details/51591802
https://blog.****.net/weixin_41485242/article/details/79122473