【问题标题】:Error with Ogre and CMakeOgre 和 CMake 出错
【发布时间】:2013-04-13 00:00:19
【问题描述】:

我在 Ubuntu 12.04 上安装了 Ogre3D 1.8.1(源代码包),一切正常(我设法在 Ogre 界面上运行了一些示例)。但是,我在编译需要 OpenCV、ArUco 和 Ogre 库的外部项目 (that one) 时遇到了问题。当我运行项目的 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 查找该文件夹并解决此问题。

【问题讨论】:

    标签: cmake ogre


    【解决方案1】:

    您只需使用-D 命令行选项和CMAKE_MODULE_PATH 变量:

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

    【讨论】:

    • 我试过 -D 命令,正如你所说,但我仍然遇到同样的问题。我也尝试使用 CMake-gui。我用 /usr/local/lib/OGRE/cmake 路径填充了 CMAKE_INSTALL_PREFIX,用 ogre 安装文件夹填充了 OGRE_DIR。是对的吗?即使这样,也会出现同样的错误。
    • 好吧,CMAKE_INSTALL_PREFIX 是您将当前项目安装到的位置,如果您执行make install,那么它在这里并不重要。 CMAKE_MODULE_PATH 是 CMake 在您使用 find_package 时检查“FindXXX.cmake”文件的目录列表。最后,将OGRE_DIR(或CMAKE_PREFIX_PATH)设置为ogre 安装目录需要一个名为OGREConfig.cmake 或ogre-config.cmake 的文件存在。如果 ogre 提供它们,其中之一将存在(它们是通过install(export...) 生成的)。我认为这确实是 应该由 ogre 而不是 FindOGRE.cmake 提供的。
    • 嗨。我正在使用“Linux Mint 14”。诀窍是找到 cmake 的食人魔文件。在我的系统中,cmake 的命令行是 cmake . -DCMAKE_MODULE_PATH=/usr/share/OGRE/cmake/modules/
    【解决方案2】:

    为了记录,另一种解决方案是直接在 CMakeLists.txt 中添加模块路径。例如(在 Debian 9 上测试):

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

    请确保在调用 find_package 之前添加该行。

    【讨论】:

      【解决方案3】:

      对我来说,它只能在CMakeLists.txt 之前在find_package 之前设置以下内容:

      set(OGRE_DIR /usr/share/OGRE/build/sdk/CMake)
      

      注意CMake 目录是包含OGREConfig.cmake 的目录。出于某种原因,我的 CMake 忽略了CMAKE_MODULE_PATH

      也许对某人有所帮助

      【讨论】:

        【解决方案4】:

        对我来说,这个解决方案适用于 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()
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多