CMake 找不到自定义模块

Æle*_*lex 6 cmake

我在 Poco 库中 contrib 下找到了一个PocoConfig.cmake,我已将其复制到 /cmake/Modules 下

我还在我的 CMakeLists.txt 中添加了:

set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
Run Code Online (Sandbox Code Playgroud)

现在我在 /Build/cmake 下运行..

我不断得到:

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

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

    PocoConfig.cmake
    poco-config.cmake

  Add the installation prefix of "Poco" to CMAKE_PREFIX_PATH or set
  "Poco_DIR" to a directory containing one of the above files.  If "Poco"
  provides a separate development package or SDK, be sure it has been
  installed.
Run Code Online (Sandbox Code Playgroud)

显然 CMake 没有找到模块文件。我做错了什么,如何显式地将 CMake 指向该模块文件?

Gui*_*ume 3

PocoConfig.cmake 不适用于 find_package (否则,它将被命名为 FindPoco.cmake),这就是您收到此错误的原因。

只需将 PocoConfig.cmake 包含在 CMakeLists.txt 中即可:

include(${CMAKE_SOURCE_DIR}/cmake/Modules/PocoConfig.cmake)
Run Code Online (Sandbox Code Playgroud)

  • PocoConfig.cmake 适用于 Config 模式下的 find_package(与 FindPoco.cmake 的模块模式相反)。您需要在 CMAKE_PREFIX_PATH 变量中添加 POCO 安装目录。有关更多信息,请参阅 find_package 文档。 (3认同)