一、下载
1、osg源码
2、整理好的第三方库
二、编译前的准备工作
在D:\下新建一个OSG文件夹,在其下再新建4个文件夹
D:\OSG\OpenSceneGraph存放OSG源代码
D:\OSG\3rdParty存放第三方依赖库
D:\OSG\data存放解压后的数据包
D:\OSG\build准备存放编译后的库和头文件等
三、使用cmake生成vs工程
1、打开cmake-gui.exe
2、将源码OpenSceneGraph文件夹里头的CmakeLists.txt,拖到Cmake界面
3、build的目录改为D:\OSG\build
4、点击Configure,选择Visual Studio 2015 Win64
5、点击configure后点击generate
四、编译工程
1、打开D:\OSG\build\OpenSceneGraph.sln工程;
2、生成--》批生成,选中ALL_BUILD的debug和release两个版本;
接下来大概要编译两个小时。。。
五、整理
编译成功后,在C盘新建一个文件夹,名为OSG3.4.0
1、把刚刚生成的D:\OSG\build下的bin、include、lib三个文件拷贝到C盘的OSG下面
2、将D:\OSG\OpenSceneGraph下的include里的文件夹全部拷贝到C:\OSG3.4.0\include下
2、在C盘的OSG下面新建文件夹,名为data,将之前下载好的数据拷贝过来。
六、设置环境变量
path中添加C:\OSG3.4.0\bin;C:\OSG3.4.0\data
七、测试:
1、在C:\OSG3.4.0\bin>目录下输入osgversion可以查看版本;
2、将cow.osg拷贝到C:\OSG3.4.0\bin目录下,输入osgviewer.exe cow.osg看能否看到一只奶牛,如果提示缺少zlib.dll,则将D:\OSG\3rdParty\bin目录下zlib.dll、zlibd.dll拷贝到C:\OSG3.4.0\bin目录下;
八、代码测试
新建vs工程,设置:
包含目录:C:\OSG3.4.0\include;
库目录:C:\OSG3.4.0\lib;
连接器-->输入设置:
osgViewer.lib
osgText.lib
opengl32.lib
osgGA.lib
osgDB.lib
osgUtil.lib
osg.lib
OpenThreads.lib
测试代码:
http://blog.csdn.net/zhuyingqingfen/article/details/8223544
http://blog.csdn.net/smells2/article/details/7283867
注意头文件要包含windows.h
转自http://www.cnblogs.com/smbx-ztbz/p/7197983.html
第二个版本
1 官网下载源码
可以是zip,也可以通过github fork一个分支,
http://www.openscenegraph.org/index.php/download-section/stable-releases
2 下载第三方库
http://members.iinet.net.au/~bchrist/3rdParty_VC10_x86_x64.zip
4 下载cmake-gui
https://cmake.org/
5 使用cmake生成vs解决方案
将之前下载的第三方库解压,放在D:\OSG-win32\3rdParty
将源码放在D:\OSG下
运行cmake-gui,按图操作:
6 编译工程
进入D:\OSG-win32下,打开OpenSceneGraph.sln
生成-》批生成:
接下来就是漫长的等待,漫长的等待。。。。。
等待之后,再一次点击:生成-》批生成:
说明:不要被上面的图片所误导,因为我已经install过了,所以显示的是uninstall
7 整理一下
在C盘新建一个文件夹,名为OSG
把刚刚生成的D:\OSG-win32下的bin、include、lib三个文件拷贝到C盘的OSG下面,并在C盘的OSG下面新建文件夹,名为data。
将之前下载的数据包解压到C:\OSG\data文件夹下。
8 系统环境变量配置
环境变量:
系统变量:
9 Hello OSG
新建一个win32控制台工程,进行配置:
包含目录和库目录:
链接器-》输入-》附加依赖项:
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
编码:
#include<osgViewer/Viewer>
#include<osgDB/ReadFile>
int main(int argc, char **argv)
{
osgViewer::Viewer viewer;
viewer.setSceneData(osgDB::readNodeFile("cessna.osg"));
return viewer.run();
}
运行,飞机出来了,就看你怎么办了。
转自http://blog.csdn.net/wangshubo1989/article/details/51591802