如何使用CMake构建OpenSceneGraph项目?

如何使用CMake构建OpenSceneGraph项目?,cmake,openscenegraph,Cmake,Openscenegraph,我刚刚下载了OpenSceneGraph源代码,将其解压缩到 “~/OpenSceneGraph-3.0.1”目录,并使用CMake创建源代码外的 eclipse在“~/OpenSceneGraph-3.0.1-build-eclipse-cdt”中创建项目 目录当我在中执行“make”时 “~/OpenSceneGraph-3.0.1-build-eclipse-cdt”目录,OpenSceneGraph-builds 成功地我没有运行“sudomakeinstall”,因为我不想运行 将Op

我刚刚下载了OpenSceneGraph源代码,将其解压缩到 “~/OpenSceneGraph-3.0.1”目录,并使用CMake创建源代码外的 eclipse在“~/OpenSceneGraph-3.0.1-build-eclipse-cdt”中创建项目 目录当我在中执行“make”时 “~/OpenSceneGraph-3.0.1-build-eclipse-cdt”目录,OpenSceneGraph-builds 成功地我没有运行“sudomakeinstall”,因为我不想运行 将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一样
使用“sudomakeinstall”。谢谢您的建议。

您不需要在系统范围内安装OpenSceneGraph。只需选择适合您的CMAKE\U INSTALL\U前缀(例如~/osg)

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

然后,您应该将
OSG_DIR
OSGDIR
OSG_ROOT
中的任何一个作为环境变量指向您的安装位置,以便CMake知道在哪里查找它

编辑: @胡格斯:我会尽量说得更清楚一点:

设置OpenSceneGraph:

  • 获取OSG源代码
  • 为它运行CMake时,如果您不想在(默认)
    /usr/local
    中进行系统范围的安装,请选择适合您的
    CMake\u INSTALL\u前缀
    。通过在命令行上声明
    -DCMAKE\u INSTALL\u PREFIX=/home/hugues/osg
    或使用gui工具(如
    ccmake
    cmake gui
    )进行设置
  • 运行
    makeinstall
    构建并安装OSG
  • 将环境变量
    OSG\u DIR
    设置为所指向的
    CMAKE\u INSTALL\u PREFIX
    。(
    导出OSG\u目录=
  • 设置项目:

  • CMakeLists.txt
    中,使用
    FIND_包(OpenSceneGraph)
    (根据需要添加所需的可选参数)
  • 在cmake文件的适当位置使用结果变量(如
    ${OpenSceneGraph\u LIBRARIES}
  • 为您的项目运行CMake

  • 那么CMakeLists.txt是什么样子的呢?很抱歉,我不理解您的说明。您做了哪些更改以使其正常工作?