从OpenSceneGraph 1.9.x 开始,OSG 开始使用CMake 工具来完成源代码工程的生成工作;而在以前的版本中(OSG1.2 及以下版本),用于编译源代码的VC7 和VC8 工程文件是直接附带的。CMake 是一个跨平台的编译工具,可以自动测试操作平台的特性,并使用简单的脚本语言来描述源代码工程的生成要求并生成对应平台环境的工程文件(makefile),其作用类似于Linux 下的autoconf。相比以往的源代码编译方式,显然这种方式更加灵活,用户也可以根据自己的需求自行添加删除组件。
所需前期准备:
Visual Studio 2005
CMake 工具,建议使用2.4.6 及以上的版本,下载地址:www.cmake.org
OpenSceneGraph-2.8.2 版源代码,下载地址:www.openscenegraph.org
OSG 的第三方开发库支持,可以自行去各个开源开发库的网站下载,也可以从下面的地址下载整合好的开发库Lib 文件和头文件:www.openscenegraph.org,但vc2005的开发库没有提供整合包,只能通过SVN工具下载SVN版本,下载地址:osgtoy.svn.sourceforge.net/svnroot/osgtoy/3rdParty/branches/3rdParty_win32binaries_vs80sp1/
OpenSceOpenSceneGraph-Data-2.8.0.zip 数据文件包。
准备好所需的源代码,编译工具和第三方开发工具后,就可以开始在Windows 环境下编译OSG 2.x 了。为了编译的顺利进行,将下载的文件组织如下:
在D盘建立一个OSG的文件夹,然后其他文件如下放置:
D:/OSG/OpenSceneGraph(放置OSG最新库文件)
D:/OSG/3rdParty(放置图像库)
D:/OSG/data(放置OpenSceOpenSceneGraph-Data-2.8.0.zip的加压数据),主要用于examples的演示
D:/OSG/bin(放置编译成功后,相关的库文件存放的地址)
D:/OSG/OpenSceneGraph/build(放置放置编译文件)
1、解压缩CMake,打开bin/CMakeSetup.exe界面,将OpenSceneGraph-2.8.2.zip 解压缩到D:/OSG/OpenSceneGraph,并将解压目录中的CMakeLists.txt 文件拖动到CMake 的界面下。
2、在弹出的对话框中,选择与当前平台所对应的编程环境,一般来说这是自动选择的,用户也可以根据自己的需求生成其它编程环境下的Makefile 或者工程文件。
3、按下Configure 按钮,此时列表框中出现一系列可以修改的参数值,在完成所有的修改之前,标识配置完成的“OK”按钮不会被启用,因此也不会生成新的工程文件。图中红色的选项说明该项需要立即进行配置;灰色的选项说明该项已经配置完毕,不过也可以重新进行配置。按下“Configure”按钮进行本次配置,而与当前所配置的项相关联的选项将在下一次配置时再次变红,等待用户重新进行配置;全部的选项都变成灰色后,“OK”按钮可以被按下,此时将生成用户所需的所有工程文件。“Configure”按钮被按下多少次都没有关系,系统会自动判断用户是否更改了选项参数,并据此列出新的关联选项;如果用户没有修改,那么再次按下“Configure”后所有选项都呈现灰色,直到用户修改其中某项的参数或者按下“OK”为止。
在第一次进行配置时,有以下几项需要注意:ACTUAL_3DPARTY_DIR:即整合的第三方开发库所在目录,这里会自动设置为D:/OSG/3rdParty。CMAKE_INSTALL_PREFIX:用于以后保存编译生成的EXE,DLL 和LIB 文件的路径,设置为D:/OSG/bin。将以下几处都置为ON
BUILD_MFC_EXAMPLE(只有在选择编译OSG 的例子程序,并再次按下“Configure”之后才会出现。)
BUILD_OSG_APPLICATIONS
BUILD_OSG_EXAMPLES
BUILD_OSG_PLUGINS
BUILD_OSG_WRAPPERS
点击configure按钮进行第二次配置,ok按钮变为可用,就可点击ok按钮开始生成。。对于VC2005以上系列,此时将在build目录中生成新的解决方案文件OpenSceneGraph.sln。
4.打开.sln 工程文件, 选择“ 批生成”, 并选择编译生成ALL_BUILD, 即整个OpenSceneGraph 工程。
编译过程中可能出现诸多warning,例如使用unicode字符集,库冲突,可以忽略,不会对编译产生影响。
5、所有的库文件,插件和示例程序都编译生成之后,就可以将它们安装到之前通过CMAKE_INSTALL_PREFIX 参数指定的路径中了。打开“批生成”界面并选择生成INSTALL工程。
可以看到系统正在执行文件的安装工作:
在D:/OSG/bin下会自动建立bin,lib,include 和share 目录,以便区分存放DLL,LIB,头文件和可执行的示例程序。
6.设置环境变量
右击我的电脑->属性->高级->环境变量,添加相应的环境变量如下:
用户变量:OSG_FILE_PATH=D:/OSG/data OSG_NOTIFY_LEVEL=INFO
系统变量path下添加 ;D:/OSG/bin/bin ,主要用于dll的调用
7.设置VS
打开VS2005,工具->选项->项目解决方案->VC++目录,分别设置OSG的头文件及库文件
包含文件里添加:D:/OSG/bin/include
库文件添加:D:/OSG/bin/lib
可执行文件添加:D:OSG/bin/share/OpenSceneGraph/bin
引用文件添加:D:/OSG/bin/lib
8.打开项目属性的链接器,输入里加上:
OpenThreadsd.lib osgd.lib osgDBd.lib osgUtild.lib osgGAd.lib osgViewerd.lib osgTextd.lib
注意:我这里编译的是debug版本,所以编译的库都有的命名为*d.lib,如果是release版本,这里加上:
OpenThreads.lib osg.lib osgDB.lib osgUtil.lib osgGA.lib osgViewer.lib osgText.lib
至此,配置安装完成。