http://www.openscenegraph.org/projects/osg/wiki/Downloads
进入下载页3.0.1版
Microsoft Windows
3.0.1
forVS9 sp12008 x86 32bit
-------------------------------------------------------------------------------------------------------------------------
或者
一、下载必须的文件
下按如下步骤下载
中文官网(里面有很多资料):http://www.osgchina.org/
1)OSG库:OpenSceneGraph-3.0.1.zip
http://www.osgchina.org/projects/osgcn/wikicn/Downloads.php
2)安装源代码所需要的工具:cmake-2.8.7-win32-x86.exe
(下载的ZIP文件里面找不到运行软件的程序,推荐下载可直接执行程序)
http://www.cmake.org/cmake/resources/software.html
3)Osg第三方库
对VS2010下载下面的
http://members.iinet.net.au/~bchrist/3rdParty_VC10_x86_x64.zip
对于VS20083rdParty :windows-VS9.0.30729-x86-debug
4)数据文件包:OpenSceneGraph-Data-3.0.0.zip
http://www.openscenegraph.org/projects/osg/wiki/Downloads/SampleDatasets
二、解压
选择一个盘(如E),新建一个目录(OSG)。把上述压缩包解压到OSG里。
还有安装CMake程序(如果是ZIP格式,解压)
三、接下来用CMake生成VS2010的工程
1) 在C:\OSG\OpenSceneGraph下建立两个文件夹,分别命名为bin、build(放置后面生成的东西)。
2) 运行CMake,将C:\OSG\OpenSceneGraph下的CMakeLists.txt拉到CMake界面里。
设置where is the source code 为C:\OSG\OpenSceneGraph
Where is build the binaries 为C:\OSG\OpenSceneGraph\build
3).点下configure按键,选择VS 10 2010(可能会出现警告,可以忽视)
3).设置相关的cache value参数,这里主要设置的参数包括:
ACTUAL_3RDPARTY_DIR:设置为前面的E:\OSG\3rdParty
BUILD_OSG_EXAMPLES :ON,即编译实例
CMAKE_INSTALL_PREFIX:E:/OSG/OpenSceneGraph/bin,设置编译成功后,相关的库文件存放的地址,.
然后点击Configure按钮,然后将Advanced打勾,将BUILD_MFC_ EXAMPLE设置为on,然后进行最后一次的Configure配置。
f)点击Generate,自此建构完成。
四.编译阶段
a) 用VS2010打开OpenSceneGraph.sln(此文件在D:\OSG\OpenSceneGraph\build下),
选择解决方案,右键选择批生成,选择ALL_BUILD和INSTALL的Debug和Release进行编译。
(菜单项没有是“生成-批生成”,但可以在“生成-配置管理器分别进行设置,选择(Debug和Release两个版本),这段编译时间是很长的,估计4-5个小时。)
遇到的问题
从网上搜索
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
对于general error c101008d: Failed to write the updated manifest to the resource of file
今天安装编译了Osg,在编译debug版本是没有问题,可改为realse版本是出现上述问题,在网上查了一下。
1,在项目属性——配置属性——链接器——清单文件中, 把生成清单改成否就行了。
2,经过进一步的探索,发现在项目属性——配置属性——清单工具——输入和输出中,把嵌入清单改成否也行。
3,如果编译前将所有打开的与该项目有关的文件都关掉,也可以解决问题。
根本原因: 由于VC需要把生成的文件中嵌入MANIFEST文件,而由于杀毒软件之类的会握有这个文件句柄(因为杀毒软件发现这个EXE,DLL正在读写),于是VC就写不进去了,方法是暂时关闭杀毒软件,这样就不用改写MANIFECT。
Hi,
This might be due to antivirus holding open handle on the exe generated and thus when VS tries to embed the manifest it fails with access denied.
Is Antivirus running on your machine? Does this repro with Antivirus turned off?
If above is not the case can you provide us with a repro.
Thanks,
VC++ Team
-------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------
只编译Debug版ALL_BUILD,出现如下信息,主要是链接错误,修改相应项目的lib即可。
设置相应的头文件和库文件目录,添加链接库设置
对于osgViewerGLUT还需要把GLUT库路径改为你自己的glut所在位置。
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------