我刚下载了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 回答
您无需在系统范围内安装OpenSceneGraph . 只需选择适合您的CMAKE_INSTALL_PREFIX(例如〜/ osg) .
使用install命令确保
FindOpenSceneGraph.cmake
(当您调用FIND_PACKAGE( OpenSceneGraph )
时CMake调用脚本)找到它时,所有内容都正确(即在正确的目录结构中) .然后,您应该将
OSG_DIR
,OSGDIR
或OSG_ROOT
中的任何一个指向环境变量并将其指向您的安装位置,以便CMake知道在哪里查找它 .Edit: @Hugues:我会尽量让它更清晰一些:
设置OpenSceneGraph:
获取OSG源代码 .
运行CMake时,选择适合您的
CMAKE_INSTALL_PREFIX
,例如 .~/osg
如果您不想在(默认)/usr/local
中进行系统范围的安装 . 通过在命令行上声明-DCMAKE_INSTALL_PREFIX=/home/hugues/osg
或使用gui工具(如ccmake
或cmake-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 .