如何使用CMake构建OpenSceneGraph项目?
我刚刚下载了OpenSceneGraph源代码,将其解压到 “〜/ OpenSceneGraph-3.0.1”目录中,并使用CMake创建一个out-of-source eclipse make项目“〜/ OpenSceneGraph-3.0.1-build -eclipse-cdt“ 目录。当我执行在 “使” “〜/ OpenSceneGraph的-3.0.1-集结Eclipse的CDT” 目录下,建立OpenSceneGraph的成功 。我没有运行“sudo make install”,因为我不想 将OpenSceneGraph安装到我的Ubuntu系统中。如何使用CMake构建OpenSceneGraph项目?
现在我想用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})
但似乎OpenSceneGraph的不能用CMake的发现。
有谁知道的CMake如何能找到编译OpenSceneGraph的 库中的“〜/ OpenSceneGraph的-3.0.1-集结Eclipse的CDT”目录,并 使用它来创建项目,就好像我一直在使用安装紧密OpenSceneGraph的 “sudo make install”。感谢您的任何建议。
你不需要安装OpenSceneGraph的系统范围。只需选择一个适合你的CMAKE_INSTALL_PREFIX(例如〜/ osg)。
使用install命令可确保FindOpenSceneGraph.cmake
(当您调用FIND_PACKAGE(OpenSceneGraph)
时脚本CMake会调用它)找到它的所有内容都正确就位(即在正确的目录结构中)。
然后,您应该指定OSG_DIR
,OSGDIR
或OSG_ROOT
中的任何一个作为环境变量并将其指向您的安装位置,以便CMake知道在哪里查找它。
编辑: @Hugues:我会尽力让它更清楚一点:
设置了OpenSceneGraph的:
- 获取OSG源。
- 当运行CMake的它,选择
CMAKE_INSTALL_PREFIX
适合你的,如。~/osg
如果您不想在(默认)/usr/local
中进行系统范围的安装。通过在命令行中指定-DCMAKE_INSTALL_PREFIX=/home/hugues/osg
或者使用像ccmake
或cmake-gui
这样的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。
CMakeLists.txt如何看起来像那样?对不起,我不明白你的指示。 – 2013-02-24 22:43:17
@Hugues希望我的扩展答案更清晰 – 2013-02-26 11:28:41
您做出了哪些改变才能使其发挥作用? – 2013-02-24 22:43:36