首页 文章

如何使用CMake构建OpenSceneGraph项目?

提问于
浏览
2

我刚下载了OpenSceneGraph源码,将其解压缩到“〜/ OpenSceneGraph-3.0.1”目录并使用CMake在“〜/ OpenSceneGraph-3.0.1-build-eclipse-cdt”中创建一个源外eclipse make项目“ 目录 . 当我在“〜/ OpenSceneGraph-3.0.1-build-eclipse-cdt”目录中执行“make”时,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-3.0.1-build-eclipse-cdt”目录中找到已编译的OpenSceneGraph库,并使用它来创建项目,好像我已经使用“sudo make install”紧密安装了OpenSceneGraph . 谢谢你的任何建议 .

1 回答

  • 4

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

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

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

    Edit: @Hugues:我会尽量让它更清晰一些:

    设置OpenSceneGraph:

    • 获取OSG源代码 .

    • 运行CMake时,选择适合您的 CMAKE_INSTALL_PREFIX ,例如 . ~/osg 如果您不想在(默认) /usr/local 中进行系统范围的安装 . 通过在命令行上声明 -DCMAKE_INSTALL_PREFIX=/home/hugues/osg 或使用gui工具(如 ccmakecmake-gui )设置它来执行此操作 .

    • 运行 make install 以构建和安装OSG .

    • 将环境变量 OSG_DIR 设置为您指向的任何内容 CMAKE_INSTALL_PREFIX . ( export OSG_DIR=<whereever_you_installed_osg>

    设置您的项目:

    • CMakeLists.txt 中,使用 FIND_PACKAGE( OpenSceneGraph ) (根据需要添加所需的可选参数) .

    • 使用生成的变量(如 ${OpenSceneGraph_LIBRARIES} 在cmake文件中的相应位置) .

    • 为您的项目运行CMake .

相关问题