2012-04-19 165 views
1

我剛剛下載了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」。感謝您的任何建議。

+0

您做出了哪些改變才能使其發揮作用? – 2013-02-24 22:43:36

回答

4

你不需要安裝OpenSceneGraph的系統範圍。只需選擇一個適合你的CMAKE_INSTALL_PREFIX(例如〜/ osg)。

使用install命令可確保FindOpenSceneGraph.cmake(當您調用FIND_PACKAGE(OpenSceneGraph)時腳本CMake會調用它)找到它的所有內容都正確就位(即在正確的目錄結構中)。

然後,您應該指定OSG_DIR,OSGDIROSG_ROOT中的任何一個作爲環境變量並將其指向您的安裝位置,以便CMake知道在哪裏查找它。

編輯: @Hugues:我會盡力讓它更清楚一點:

設置了OpenSceneGraph的:

  1. 獲取OSG源。
  2. 當運行CMake的它,選擇CMAKE_INSTALL_PREFIX適合你的,如。 ~/osg如果您不想在(默認)/usr/local中進行系統範圍的安裝。通過在命令行中指定-DCMAKE_INSTALL_PREFIX=/home/hugues/osg或者使用像ccmakecmake-gui這樣的gui工具來設置它。
  3. 運行make install構建和安裝OSG。
  4. 設置環境變量OSG_DIR任何你指出CMAKE_INSTALL_PREFIX。 (export OSG_DIR=<whereever_you_installed_osg>

設置你的項目:

  1. 在你CMakeLists.txt,使用FIND_PACKAGE(OpenSceneGraph)(添加所需的可選參數根據需要)。
  2. 用在適當的地方將結果變量(如${OpenSceneGraph_LIBRARIES}在cmake的文件。
  3. 爲您的項目運行CMake。
+0

CMakeLists.txt如何看起來像那樣?對不起,我不明白你的指示。 – 2013-02-24 22:43:17

+2

@Hugues希望我的擴展答案更清晰 – 2013-02-26 11:28:41