OpenSceneGraph配置和编译说明

步骤1:   

设置环境变量。在环境变量—〉系统变量中的path后面追加OSG整体程序的bin目录(如E:/OSG/OSG_OP_OT-0.9.6-2/OpenSceneGraph-0.9.6-2/bin)。在环境变量—〉用户变量中新建变量OSGinclude,值为:E:/OSG/OSG_OP_OT-0.9.6-2/OpenSceneGraph-0.9.6-2/include;新建变量OSGlib,值为:E:/OSGO/SG_OP_OT-0.9.6-2/OpenSceneGraph-0.9.6-2/lib;新建变量STLlib,值为:C:/Program Files/Microsoft Visual Studio/VC98/STLport-4.6.2/lib。

步骤2: 

 配置STL。将STLport lib库中的(如C:/Program Files/Microsoft Visual Studio/VC98/STLport-4.6.2/lib)stlport_vc6.lib拷贝到VC的lib库中(如C:/Program Files/Microsoft Visual Studio/VC98/Lib)(说明:一般情况下拷贝stlport_vc6.lib就可以了,但不同的example有不同的要求,可能还需要其他STL的lib文件,大家可以根据需要添加或直接在工程中进行相应设置)。然后将STLport lib库中的两个dll文件stlport_vc6_stldebug46.dll和stlport_vc646.dll拷贝到OpenSceneGraph(以下简称OSG)的bin下(如E:/OSG/OSG_OP_OT-0.9.6-2/OpenSceneGraph-0.9.6-2/bin)。打开C:/Program Files/Microsoft Visual Studio/VC98/STLport-4.6.2/stlport/stl_user_config.h,在第59行将// #define   _STLP_NO_NEW_IOSTREAMS      1前面的注释去掉(MSVC6.0的STL版本太低,因此采用SGI的STLport。刚才去掉注释的目的是屏蔽MSVC6.0的iostream)。最后打开OSG关于VC6.0的工程文件VisualStudio.dsw(如E:/OSG/OSG_OP_OT-0.9.6-2/OpenSceneGraph-0.9.6-2/VisualStudio/VisualStudio.dsw),在Tools —〉Options  —〉Directories  —〉Directories:中添加一项C:/Program Files/Microsoft Visual Studio/VC98/STLport-4.6.2/stlport,并将其置于第一的位置。

步骤3:   

 编译OSG的OpenThreads。打开OpenThreads的工程文件(如E:/OSG/OSG_OP_OT-0.9.6-2/OpenThreads-v1.2dev3-osg0.9.6/win32_src/OpenThreads.dsw)。将该工程文件下的win32thread.cpp中第26行的using std::size_t;注释掉,编译链接(batch build),在OpenThreads的bin目录下生成2个dll文件OpenThreadsWin32d.dll和OpenThreadsWin32.dll,同时在OpenThreads的libWin32目录下(如E:/OSG/OSG_OP_OT-0.9.6-2/OpenThreads-v1.2dev3-osg0.9.6/lib/Win32)生成2个lib文件,OpenThreadsWin32d.lib,OpenThreadsWin32.lib。

步骤4:   

编译OSG的Producer。打开Producer的工程文件Producer.dsw(如E:OSGOSG_OP_OT-0.9.6-2Producer-0.8.4-2VC++6.0Producer.dsw),做如下设置:

       在Project —〉Settings  —〉C/C++  —〉Category选项下拉菜单里选择“Preprocessor”,在Additional include directories添加:E:/OSG/OSG_OP_OT-0.9.6-2OpenThreads-v1.2dev3-osg0.9.6/include

      在Project —〉Settings  —〉Link  —〉Category 下拉菜单选择”Input”,在 Additional library path: 添加E:/OSG/OSG_OP_OT-0.9.6-2/OpenThreads-v1.2dev3-osg0.9.6/lib/Win32 注意在release和debug中都要作上述设置,然后编译链接(batch build),得到和OpenThreads相似的结果。

步骤5:   

从属文件的拷贝:将3rdParty_2003-10-01include下的所有文件拷贝至整体程序的头文件目录下(如E:/OSGOSG_OP_OT-0.9.6-2/OpenSceneGraph-0.9.6-2/include);将3rdParty_2003-10-01lib下的所有文件拷贝至整体程序的lib库中(如E:/OSG/OSG_OP_OT-0.9.6-2/OpenSceneGraph-0.9.6-2/lib)。

步骤6:   

整体程序的编译链接。首先将OpenThreads和Producer的头文件目录带文件(如E:/OSG/OSG_OP_OT-0.9.6-2/OpenThreads-v1.2dev3-osg0.9.6/include下的OpenThreads文件夹和E:/OSG/OSG_OP_OT-0.9.6-2/Producer-0.8.4-2/include下的Producer文件夹)一起拷贝到整体程序的头文件库(E:/OSG/OSG_OP_OT-0.9.6-2/OpenSceneGraph-0.9.6-2/include)中。然后将2、3步生成的OpenThreadsWin32d.lib、OpenThreadsWin32.lib和Producerd.lib、Producer.lib拷贝至OSG的lib目录下(如E:/OSG/OSG_OP_OT-0.9.6-2/OpenSceneGraph-0.9.6-2/lib)。再将2、3步生成的OpenThreadsWin32d.dll、OpenThreadsWin32.dll和Producerd.dll、Producer.dll拷贝到OSG的bin目录下(如E:OSGOSG_OP_OT-0.9.6-2OpenSceneGraph-0.9.6-2/bin)。打开OSG关于VC6.0的工程文件VisualStudio.dsw(如E:/OSG/OSG_OP_OT-0.9.6-2/OpenSceneGraph-0.9.6-2/VisualStudio/VisualStudio.dsw)。在E:/OSG/OSG_OP_OT-0.9.6-2/OpenSceneGraph-0.9.6-2/examples/slideshow3d eaderwriterxml.cpp中将所有xmlChildrenNode替换为 children。编译链接整个OSG程序(batch build)。这个时间非常漫长,在整个过程中我只有osgscalarbar.exe和osgdb_objd.dll在生成时出错。成功之后就可以在bin目录(如E:/OSG/OSG_OP_OT-0.9.6-2/OpenSceneGraph-0.9.6-2/bin)和lib目录(如E:/OSG/OSG_OP_OT-0.9.6-2/OpenSceneGraph-0.9.6-2/lib)看到很多生成的dll和lib文件了。

你可能感兴趣的:(dll,Build,vc++,include,iostream,preprocessor)