openscene graph 3.0.1的编译
编译osg3.0.1 环境vs2008sp1
qt 4.8.4
一、准备安装资料包程序(到OSG官方网站都可以下载)
下载相关的工具软件:
1、 最新版的OSG库:OpenSceneGraph-3.0.1.zip。
2、 安装源代码所需要的工具:cmake-2.8.6-win32-x86.zip及以上版本均可。
3、 Windows支持的图像库:3rdParty_Win32Binaries_vc90sp1.zip,因为我用的是VS2008,如果用VS2005应该有其它针对的版本
4、 数据文件包:OpenSceneGraph-Data-3.0.0.zip
(其中3、4部分在OpenSceneGraph-3.0.0-VS9.0.30729-x86-release-12681中包括,或者可以单独下载)
二、编译准备(可选)
为了编译的顺利进行,将下载的文件组织如下:
在E盘建立一个OSG的文件夹,然后其他文件如下新建放置:
E:\OSG\OpenSceneGraph(放置OSG最新库文件,将openSceneGraph-3.0.1.zip解压到这个文件夹下)
E:\OSG\3rdParty(放置图像库,将3rdParty_Win32Binaries_vc90sp1.zip解压到这个文件夹下)
E:\OSG\data(放置OpenSceneGraph-Data-3.0.0.zip的解压数据),主要用于examples的演示。
三、用Cmake生成Project & Solution files
1、 在E:\OSG\OpenSceneGraph下新建两个文件夹,分别命名为build、bin,用于放置编译文件
2、 解压cmake-2.8.6,打开bin/cmake-gui.exe,将E:\OSG\OpenSceneGraph下的CMakeLists.txt拖到界面上。
3、在Where to build the binaries选项中,在路径的末尾加上“/build”,即为:E:/OSG/OpenSceneGraph/build。在这个文件夹中将存放cmaker生成的二进制文件。
4、此时软件会弹出对话框询问你要生成哪种项目工程,我们选择Visual Studio 9 2008。然后点击Finish确定。
5、在此之后,软件便开始configure这个项目,它会分析项目中已有的相关配置。然后将有疑问的未配置项目标定为红色。
6、设置相关的cache value参数,这里主要设置的参数包括:
(1) ACTUAL_3RDPARTY_DIR:设置为前面的 E:\OSG\3rdParty ACTUAL_3DPARTY_DIR:即整合的第三方开发库所在目录,如果下载了OSG提供的整合好的第三方开发库,那么可以在这里设置解压缩之后它的位置,CMake将在下次配置时自动搜索所需的Lib文件和头文件路径。
(2)BUILD_OSG_EXAMPLES:是否编译OSG所有例子程序的选项,应当选择“ON”。即编译实例
(3)CMAKE_CONFIGURATION_TYPES:定义了工程文件中工程配置的种类,缺省值包括Debug,Release,MinSizeRel和RelWithDebInfo四种类型。注意不同的配置类型在工程中对应不同的编译选项,可以在CMAKE_CXX_FLAGS和CMAKE_EXE_LINKER_FLAGS中进行修改。
(4) CMAKE_INSTALL_PREFIX:E:/OSG/OpenSceneGraph/bin
CMAKE_INSTALL_PREFIX:用于以后保存编译生成的EXE,DLL和LIB文件的路径,在这个路径下会自动建立bin(为可执行程序的执行提供DLLs), lib(库文件), include(头文件), and share\OpenSceneGraph\bin\(实例的可执行文件)等四个文件夹
7、配置好以上四个项目后,按下“Configure”按钮进行本次配置,而与当前所配置的项相关联的选项将在下一次配置时再次变红,等待用户重新进行配置;
第一次配置完成后,将右上角的Show Advanced Values 复选框选择上,将MFC EXAMPLE 设置为ON.
忽略其他未配置项,一直点击“Configure”按钮直到“Generate”按钮变回可用。
8、按下“Generate”按钮,此时将生成用户所需的所有Visual Studio 9 2008
工程文件。
四、设置环境变量
右击我的电脑->属性->高级->环境变量,添加相应的环境变量如下:
用户变量:OSG_FILE_PATH = E:\OSG\data
系统变量path下添加 ;E:\OSG\OpenSceneGraph\bin\bin ,主要用于dll的调用。
五.数据集配置测试
在命令行中,输入osgViewerd.exe cow.osg回车,如果能成功运行,程序将会打开一个“母牛”的3D模型。
(注意:有的电脑可能系统提示缺失zlib1.dll和zlib1d.dll,这两个分别对应Release和Debug版本,在3rdParty文件夹中可以找到,把他们添加到C:\WINDOWS\SYSTEM32,,然后dll注册,
方法:开始,运行,输入“regsvr32 zlib1.dll”,回车,zlib1d.dll同样方式。)
六、设置VS2008
打开VS2008,工具->选项->项目解决方案->VC++目录,分别设置OSG的头文件及库文件
包含文件里添加:E:\OSG\OpenSceneGraph\bin\include
库文件添加:E:\OSG\OpenSceneGraph\bin\lib
八、新建OSG项目测试
(1) 打开VS2008,创建一个WIN32控制台程序。
(2)注意:请选空项目,在源程序中添加一个新项,添加一个C++文件(cpp)。
(3)在这个CPP文件中输入代码:
#include <osgViewer/Viewer>
#include <osgDB/ReadFile>
int main( int, char ** )
{
osgViewer::Viewer viewer;
viewer.setSceneData( osgDB::readNodeFile( "cow.osg" ) );
return viewer.run();
}
(4)打开项目属性的链接器,输入里加上:
OpenThreads.lib
osg.lib
osgDB.lib
osgUtil.lib
osgGA.lib
osgViewer.lib
osgText.lib
注意:我这里编译的是Release版本,所以编译的库都有的命名为*.lib,如果是Debug版本,要添加对应的*d.lib库。
另:编译工程后debug版本顺利运行。release版本出现需要msvcr80.dll文件的错误,该错误不用去下载dll文件,将属性中运行时库改为“多线程调试 DLL (/MDd)”即告解决!若还不行,可多换几种模式试试。该问题困扰我很久。还是没搞明白,搜索网络方知。
posted on 2013-06-30 07:23 waterblue 阅读(2023) 评论(0) 编辑 收藏 举报