首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用CMake构建OpenSceneGraph项目?

如何使用CMake构建OpenSceneGraph项目?
EN

Stack Overflow用户
提问于 2012-04-19 11:26:23
回答 2查看 5.8K关注 0票数 3

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

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

代码语言:javascript
复制
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一样。谢谢你的建议。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-19 16:28:16

您不需要在整个系统范围内安装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,例如。如果您不想在(默认) /usr/local中进行系统范围的安装,则使用~/osg。通过在命令行中声明-DCMAKE_INSTALL_PREFIX=/home/hugues/osg,或者使用ccmakecmake-gui.
  3. Run make install等图形用户界面工具设置它来构建和安装OSG,即可完成此操作。
  4. 将环境变量OSG_DIR设置为您指定的CMAKE_INSTALL_PREFIX。(export OSG_DIR=<whereever_you_installed_osg>)

设置您的项目:

在您的CMakeLists.txt中,使用FIND_PACKAGE( OpenSceneGraph ) (添加所需的可选参数作为cmake结果变量的

  • (如CMake文件中适当位置的${OpenSceneGraph_LIBRARIES}

  • 为您的项目运行CMake。
票数 5
EN

Stack Overflow用户

发布于 2021-08-25 04:01:55

在您的CMakeLists.txt中添加以下命令:

list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")

然后将文件FindOpenSceneGraph.cmake放入src/cmake目录。

可以在here中找到FindOpenSceneGraph.cmake。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10221240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档