如何使用CMake构建OpenSceneGraph项目?

时间:2012-04-19 03:26:23

标签: cmake openscenegraph

我刚刚下载了OpenSceneGraph源码,将其解压缩 “〜/ OpenSceneGraph-3.0.1”目录并使用CMake创建一个out-of-source eclipse在“〜/ OpenSceneGraph-3.0.1-build-eclipse-cdt”中创建项目 目录。当我执行“make”时 “〜/ OpenSceneGraph-3.0.1-build-eclipse-cdt”目录,OpenSceneGraph构建 成功。我没有运行“sudo make install”,因为我不想这样做 将OpenSceneGraph紧密安装到我的Ubuntu系统中。

现在我想使用CMake使用编译来创建项目 OpenSceneGraph库。我在CMakeLists.txt中使用以下代码:

CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
PROJECT( test_proj )
FIND_PACKAGE(OpenSceneGraph)
ADD_EXECUTABLE(test test.cpp )
INCLUDE_DIRECTORIES(${OPENSCENEGRAPH_INCLUDE_DIRS})
TARGET_LINK_LIBRARIES(test ${OPENSCENEGRAPH_LIBRARIES} )

但似乎CMake无法找到OpenSceneGraph。

有谁知道CMake如何找到已编译的OpenSceneGraph 库中的“〜/ OpenSceneGraph-3.0.1-build-eclipse-cdt”目录和 用它来创建项目就好像我已经紧密安装了OpenSceneGraph 使用“sudo make install”。谢谢你的任何建议。

1 个答案:

答案 0 :(得分:5)

您无需在系统范围内安装OpenSceneGraph。只需选择适合您的CMAKE_INSTALL_PREFIX(例如〜/ osg)。

使用install命令确保FindOpenSceneGraph.cmake(当您调用FIND_PACKAGE( OpenSceneGraph )时CMake调用的脚本)找到它时,所有内容都正确就位(即在正确的目录结构中)。

然后,您应该将OSG_DIROSGDIROSG_ROOT中的任何一个指向环境变量并将其指向您的安装位置,以便CMake知道在哪里查找它。

修改 @Hugues:我会试着让它更清楚一点:

设置OpenSceneGraph:

  1. 获取OSG来源。
  2. 运行CMake时,请选择适合您的CMAKE_INSTALL_PREFIX,例如。如果您不希望在(默认)~/osg中进行系统范围的安装,请/usr/local。通过在命令行上声明-DCMAKE_INSTALL_PREFIX=/home/hugues/osg或使用ccmakecmake-gui等gui工具进行设置来执行此操作。
  3. 运行make install以构建和安装OSG。
  4. 将环境变量OSG_DIR设置为您指向的任何内容CMAKE_INSTALL_PREFIX。 (export OSG_DIR=<whereever_you_installed_osg>
  5. 设置项目:

    1. CMakeLists.txt中,使用FIND_PACKAGE( OpenSceneGraph )(根据需要添加所需的可选参数)。
    2. 在cmake文件的相应位置使用生成的变量(例如${OpenSceneGraph_LIBRARIES}
    3. 为您的项目运行CMake。