从源代码编译OSG

来源:互联网 发布:mac系统消失 编辑:程序博客网 时间:2024/06/05 15:05

Windows 下:

1.下载CMake工具:http://www.cmake.org/cmake/resources/software.html

    下载OSG源代码以及必要的Sample Datasets 和Dependencies:http://www.openscenegraph.org/projects/osg/wiki/Downloads

2。使用CMake工具编译OSG。

    1)把CMakeLists.txt 拖放到CMake软件的GUI界面上,可以选择更改安装路径:"Where to build the binaries"。该路径是OSG的初始编译路径。

    2)点击 'Configure' ,之后出现的红色内容是告诉你这些内容将可以由你指定,并在后面的generate中据此生成,如E:/temp。

如果出现以下错误:

Looking for include files CMAKE_HAVE_PTHREAD_H

Looking for include files CMAKE_HAVE_PTHREAD_H - not found.

Found Threads: TRUE

Could NOT find LibXml2 (missing: LIBXML2_LIBRARIES LIBXML2_INCLUDE_DIR)

Could NOT find CURL (missing: CURL_LIBRARY CURL_INCLUDE_DIR)

Could NOT find OpenAL (missing: OPENAL_LIBRARY OPENAL_INCLUDE_DIR)

Could NOT find JPEG (missing: JPEG_LIBRARY JPEG_INCLUDE_DIR)

Could NOT find PNG (missing: PNG_LIBRARY PNG_PNG_INCLUDE_DIR)

Could NOT find TIFF (missing: TIFF_LIBRARY TIFF_INCLUDE_DIR)

Performing Test _OPENTHREADS_ATOMIC_USE_GCC_BUILTINS

Performing Test _OPENTHREADS_ATOMIC_USE_GCC_BUILTINS - Failed

Performing Test _OPENTHREADS_ATOMIC_USE_MIPOSPRO_BUILTINS

Performing Test _OPENTHREADS_ATOMIC_USE_MIPOSPRO_BUILTINS - Failed

Performing Test _OPENTHREADS_ATOMIC_USE_SUN

Performing Test _OPENTHREADS_ATOMIC_USE_SUN - Failed

Performing Test _OPENTHREADS_ATOMIC_USE_WIN32_INTERLOCKED

Performing Test _OPENTHREADS_ATOMIC_USE_WIN32_INTERLOCKED - Success

Performing Test _OPENTHREADS_ATOMIC_USE_BSD_ATOMIC

Performing Test _OPENTHREADS_ATOMIC_USE_BSD_ATOMIC - Failed

这时可以添加第三方依赖项:http://www.openscenegraph.org/projects/osg/wiki/Downloads/Dependencies

将之解压缩并复制到OSG源代码目录“OpenSceneGraph-2.8.3”下,并将之命名为3rdParty,当然也可以不重命名,直接在CMake过程中指定:ACTUAL_3DPARTY_DIR.

当然,这一步不是必要的,只要'Generate'按钮可以使用即可。但最好还是这么做,可以支持更多类型的数据嘛(你应该已经看到了3dParty中有GDAL等内容)。

还要注意,在configure过程中,也最好启用BUILD_OSG_EXAMPLES;

另外,CMAKE_INSTALL_PREFIX 路径要指定为应用程序使用时的路径,该路径就是run-time路径,即最终从编译文件copy到的文件路径,最好不和:"Where to build the binaries"指定的路径一致,如E:/runtime/OSG_runtime。

3。在安装的路径下找到OpenSceneGraph.sln,打开,编译之。

  。。。。。。。。。真无语,要编译n久。。> one hour

4。继续在该OpenSceneGraph.sln工程中找到INSTALL,右击->生成(编译)。把该copy的copy到CMAKE_INSTALL_PREFIX指定的路径下。

5。 添加环境变量

1)OSG_ROOT 指向上述CMAKE_INSTALL_PREFIX指定的路径

OSG_BIN_PATH = %OSG_ROOT%/bin
OSG_INCLUDE_PATH = %OSG_ROOT%/include
OSG_LIB_PATH = %OSG_ROOT%/lib
OSG_SAMPLES_PATH = %OSG_ROOT%/share/OpenSceneGraph/bin
OSG_FILE_PATH = xxx/OpenSceneGraph-Data-X.X(这里的路径是下载解压缩后的Sample Dataset所在位置,后面的X.X指该OpenSenceGraph-Data的版本号,我是把这个文件夹也放到OSG_ROOT下的,所以我的是E:/runtime/OSG_runtime/OpenSceneGraph-Data-2.8.0)

2)在path中添加%OSG_BIN_PATH% 和 %OSG_SAMPLES_PATH%的路径

6。 测试下安装是否成功

cd 到CMAKE_INSTALL_PREFIX指定的安装路径下,输入相关osgversiond,osglogod等。注意此时所有的命令执行程序、DLL、LIB文件都有一个'd'的后缀,那是因为我在编译工程的时候用的是Debug版本。

7。 具体的,可以参照下述的参考文献。

 

参考文献:

1。http://www.openscenegraph.org/projects/osg/wiki/Support/PlatformSpecifics/VisualStudio

2。http://www.openscenegraph.org/projects/osg/wiki/Build/CMake