OSG配置步骤
1.基本环境
Win10+VS2015
OSG3.6.3 + CMake3.12.2 + 3rdParty + OSG-Data-3.0.0
来源:
- OSG3.6.3 源码来自github:
https://github.com/openscenegraph/OpenSceneGraph/tree/OpenSceneGraph-3.6.3 - CMake3.12.2 来自:
https://cmake.org/ - 3rdParty 来自:
http://members.iinet.net.au/~bchrist/3rdParty_VC10_x86_x64.zip - OSG-Data-3.0.0 来自:
http://www.openscenegraph.org/downloads/stable_releases/OpenSceneGraph-3.0/data/OpenSceneGraph-Data-3.0.0.zip
2. CMake出OSG安装包
用CMake打开源码位置,设置好生成的安装包位置,先点Configure然后再点Generate,
(注意要选择3rdParty的位置)
3. 生成OSG库
在OSG安装包的位置,打开OpenSceneGraph.sln文件开始生成:
生成—>批生成—>勾选debug和release两个版本(x64)开始生成,如下图生成成功:
把生成OSG库文件的bin、include、lib复制到C:\OSG目录下,并在该目录下新建data文件,放入OSG-Data-3.0.0里的文件,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测试
- CMD下输入命令:
osgviewer cow.osg
成功运行测试用例—牛 - 新建工程,如上面配置好工程属性,输入代码,成功运行测试用例—飞机
#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、遇到的问题及解决方法
- CMD下运行osgviewer cow.osg,提示命令osgviewer不存在。
解决:正确环境变量配置;查看bin目录下是否有osgviewer.exe文件和osgviewerd.exe,若只有d结尾的debug版。的osgviewerd.exe文件,则说明缺少了release版,重新生成OSG库文件,记得勾选release版本。 - 测试工程生成解决方案时遇到无法读取xxx.lib文件的问题。
解决:可能是VS工程属性目录配置出错,或生成OSG库文件是生成失败,缺少了对应文件,对应解决。 - 测试工程生成解决方案时报出LNK2019:无法解析的外部符号。
解决:工程用了x86模式编译,而OSG的库文件是x64的,用x64模式编译即可。 - 测试工程生成解决方案时报出无法识别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