2013-04-13 56 views
3

我在Ubuntu 12.04上安裝了Ogre3D 1.8.1(源碼包),一切正常(我設法在Ogre界面上運行了一些示例)。然而,當我編譯一個需要OpenCV,ArUco和Ogre librarys的外部項目(that one)時,我遇到了一個問題。當我運行該項目的CMake的,我收到以下內容:Ogre和CMake的錯誤

CMake Error at CMakeLists.txt:46 (find_package): 
By not providing "FindOGRE.cmake" in CMAKE_MODULE_PATH this project has 
asked CMake to find a package configuration file provided by "OGRE", but 
CMake did not find one. 

Could not find a package configuration file provided by "OGRE" with any of 
the following names: 

OGREConfig.cmake 
ogre-config.cmake 

Add the installation prefix of "OGRE" to CMAKE_PREFIX_PATH or set 
"OGRE_DIR" to a directory containing one of the above files. If "OGRE" 
provides a separate development package or SDK, be sure it has been 
installed. 


-- Configuring incomplete, errors occurred! 

我知道那裏的FindOGRE.cmake是,它位於/ usr/local/lib目錄/ OGRE/cmake的,但我不知道如何對CMake尋找該文件夾並解決此問題。

回答

4

你只需要使用-D命令行選項與CMAKE_MODULE_PATH變量一起:

cmake . -DCMAKE_MODULE_PATH=/usr/local/lib/OGRE/cmake 
+0

正如你所說,我嘗試了-D命令,但我仍然遇到同樣的問題。我也嘗試過使用CMake-gui。我使用/ usr/local/lib/OGRE/cmake路徑填充了CMAKE_INSTALL_PREFIX,並使用了OGRE安裝文件夾填充了OGRE_DIR。是對的嗎?即便如此,也會發生同樣的錯誤。 –

+0

那麼,'CMAKE_INSTALL_PREFIX'是你將安裝你的當前項目到'make install'的地方,所以它在這裏並不真正相關。 'CMAKE_MODULE_PATH'是當你使用'find_package'時CMake檢查「FindXXX.cmake」文件的目錄列表。最後,將「OGRE_DIR」(或「CMAKE_PREFIX_PATH」)設置爲食人魔安裝目錄需要一個名爲OGREConfig.cmake或ogre-config.cmake的文件存在。如果食人魔提供了它們(它們是通過'install(export ...)'生成的),其中一個會存在。這真的是*應該*由食人魔提供,而不是FindOGRE.cmake我認爲。 – Fraser

+0

嗨。我正在使用「Linux Mint 14」。訣竅是找到cmake食人魔文件。在我的系統中,cmake的命令行是'cmake。 -DCMAKE_MODULE_PATH =/usr/share/OGRE/cmake/modules /'。 –

0

爲了記錄,另一種解決方案是直接在的CMakeLists.txt添加模塊路徑。例如(在Debian 9上測試):

set(CMAKE_MODULE_PATH "/usr/share/OGRE/cmake/modules/;${CMAKE_MODULE_PATH}") 

只要確保在調用find_package之前添加該行。