Ogre和CMake出错
我在Ubuntu12.04上安装了Ogre3D1.8.1(源代码包),一切都很顺利(我在Ogre界面上运行了一些示例)。然而,我在编译一个需要OpenCV、ArUco和Ogre库的外部项目()时遇到了一个问题。当我运行项目的CMake时,我收到以下信息:Ogre和CMake出错,cmake,ogre,Cmake,Ogre,我在Ubuntu12.04上安装了Ogre3D1.8.1(源代码包),一切都很顺利(我在Ogre界面上运行了一些示例)。然而,我在编译一个需要OpenCV、ArUco和Ogre库的外部项目()时遇到了一个问题。当我运行项目的CMake时,我收到以下信息: CMake Error at CMakeLists.txt:46 (find_package): By not providing "FindOGRE.cmake" in CMAKE_MODULE_PATH this project has a
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查找该文件夹并解决此问题。您只需要使用命令行选项和变量:
cmake . -DCMAKE_MODULE_PATH=/usr/local/lib/OGRE/cmake
为了记录在案,另一种解决方案是直接在CMakeLists.txt中添加模块路径。例如(在Debian 9上测试):
只需确保在调用find_package之前添加行。对于我来说,它只适用于在
find_package
之前在CMakeLists.txt
中设置以下内容:
set(OGRE_DIR /usr/share/OGRE/build/sdk/CMake)
请注意,CMake
目录是包含OGREConfig.CMake
的目录。出于某种原因,我的CMake忽略了CMake\u模块\u路径
也许,对某人有一些帮助对我来说,这个解决方案适用于manjaro:
set(CMAKE_MODULE_PATH "/usr/lib/OGRE/cmake;${CMAKE_MODULE_PATH}")
find_package(OGRE QUIET)
if (OGRE_FOUND)
include_directories( ${ogre_INCLUDE_DIR})
link_directories(${OGRE_LIBRARIES})
message(STATUS "OGRE: FOUND")
else()
message(STATUS "OGRE: NOT FOUND")
endif()
正如你所说,我尝试了-D命令,但仍然遇到了同样的问题。我还尝试使用CMake gui。我用/usr/local/lib/OGRE/CMAKE路径填充了CMAKE_INSTALL_前缀,用OGRE安装文件夹填充了OGRE_目录。是这样吗?即使如此,也会出现同样的错误。如果您执行
进行安装,那么CMAKE\u INSTALL\u前缀
就是您将当前项目安装到的位置,因此它在这里并不相关CMAKE_模块_路径
是一个目录列表,当您使用find_包
时,CMAKE在其中检查“FindXXX.CMAKE”文件。最后,将OGRE_DIR
(或CMAKE_PREFIX_PATH
)设置为OGRE安装DIR需要一个名为OGREConfig.CMAKE或OGRE-config.CMAKE的文件才能存在。如果ogre提供了它们,其中一个就存在了(它们是通过install(export…
)生成的)。这真的是食人魔应该提供的,而不是FindOGRE.cmake我想。嗨。我正在使用“LinuxMint14”。诀窍是找到cmake食人魔文件。在我的系统中,cmake的命令行是cmake-DCMAKE\u MODULE\u PATH=/usr/share/OGRE/cmake/modules/
。
set(CMAKE_MODULE_PATH "/usr/lib/OGRE/cmake;${CMAKE_MODULE_PATH}")
find_package(OGRE QUIET)
if (OGRE_FOUND)
include_directories( ${ogre_INCLUDE_DIR})
link_directories(${OGRE_LIBRARIES})
message(STATUS "OGRE: FOUND")
else()
message(STATUS "OGRE: NOT FOUND")
endif()