如何使用CMake构建OpenSceneGraph项目?

4
我刚刚下载了OpenSceneGraph源代码,并将其解压到“~/OpenSceneGraph-3.0.1”目录中,然后使用CMake在“~/OpenSceneGraph-3.0.1-build-eclipse-cdt”目录中创建一个带有eclipse make的项目。当我在“~/OpenSceneGraph-3.0.1-build-eclipse-cdt”目录中执行“make”命令时,OpenSceneGraph成功构建。由于我不想将OpenSceneGraph紧密安装到我的Ubuntu系统中,因此我没有运行“sudo make install”。
现在我想使用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一样。感谢任何建议。


你做了哪些更改使它能够工作? - Hugues Fontenelle
2个回答

6
您不需要在系统范围内安装OpenSceneGraph。只需选择适合您的CMAKE_INSTALL_PREFIX(例如~/osg)。
使用install命令可以确保一切都正确地放置(即在正确的目录结构中),以便FindOpenSceneGraph.cmake(当您调用FIND_PACKAGE(OpenSceneGraph)时,CMake调用的脚本)可以找到它。
然后,您应该将任何一个OSG_DIR、OSGDIR或OSG_ROOT作为环境变量,并将其指向您的安装位置,这样CMake就知道要在哪里查找它。
编辑: @Hugues:我会尝试让它更清晰:
设置OpenSceneGraph:
1. 获取OSG源代码。 2. 运行CMake,选择适合您的CMAKE_INSTALL_PREFIX,例如~/osg,如果您不想在(默认)/usr/local中进行系统范围的安装,请通过在命令行上陈述-DCMAKE_INSTALL_PREFIX=/home/hugues/osg来执行此操作,或者通过使用像ccmake或cmake-gui这样的gui工具进行设置。 3. 运行make install以构建和安装OSG。 4. 将环境变量OSG_DIR设置为您指定的任何内容CMAKE_INSTALL_PREFIX。(export OSG_DIR=)
设置您的项目:
1. 在您的CMakeLists.txt中,使用FIND_PACKAGE(OpenSceneGraph)(根据需要添加所需的可选参数)。 2. 在您的cmake文件中,将结果变量(例如${OpenSceneGraph_LIBRARIES})放在适当的位置。 3. 为您的项目运行CMake。

CMakeLists.txt看起来是什么样子?很抱歉,我不理解你的指示。 - Hugues Fontenelle

0
在你的CMakeLists.txt文件中添加以下命令:
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")

然后将FindOpenSceneGraph.cmake文件放置在src/cmake目录下。
可以在这里找到FindOpenSceneGraph.cmake文件。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接