我刚刚下载了OpenSceneGraph源码,将其解压缩 “〜/ OpenSceneGraph-3.0.1”目录并使用CMake创建一个out-of-source eclipse在“〜/ OpenSceneGraph-3.0.1-build-eclipse-cdt”中创建项目 目录。当我执行“make”时 “〜/ OpenSceneGraph-3.0.1-build-eclipse-cdt”目录,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 库中的“〜/ OpenSceneGraph-3.0.1-build-eclipse-cdt”目录和 用它来创建项目就好像我已经紧密安装了OpenSceneGraph 使用“sudo make install”。谢谢你的任何建议。
答案 0 :(得分:5)
您无需在系统范围内安装OpenSceneGraph。只需选择适合您的CMAKE_INSTALL_PREFIX(例如〜/ osg)。
使用install命令确保FindOpenSceneGraph.cmake
(当您调用FIND_PACKAGE( OpenSceneGraph )
时CMake调用的脚本)找到它时,所有内容都正确就位(即在正确的目录结构中)。
然后,您应该将OSG_DIR
,OSGDIR
或OSG_ROOT
中的任何一个指向环境变量并将其指向您的安装位置,以便CMake知道在哪里查找它。
修改强> @Hugues:我会试着让它更清楚一点:
设置OpenSceneGraph:
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}
。