CMake软件包查找工作如何?

时间:2018-02-28 17:36:42

标签: visual-c++ cmake cinder

我正在研究使用libCinder作为dep的Qub3d,并且不断发现这个奇怪的错误,因为无法找到一个预先捆绑的cmake文件。

CMake Error at dependencies/cinder/proj/cmake/modules/cinderMakeApp.cmake:65 (find_package):
  Could not find a package configuration file provided by "cinder" with any
  of the following names:

    cinderConfig.cmake
    cinder-config.cmake

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

所以我环顾四周找到了this解决方案,归结为在cmake ..中运行(cinder_dir)/build,它以某种方式设法让我的项目的Cmake构建脚本来查找包{{1} }。

cinder是否会查找find_package()生成的文件?

如果有人能告诉我为什么会这样,我会非常感激。

1 个答案:

答案 0 :(得分:0)

将我的评论转化为答案

如果您必须手动构建cinder软件包,它未正确集成到Qub3d或 - Qub3d正在使用cinder提议的集成方式 - cinder图书馆的CMake支持。

查看ci_make_app()代码you were referring tofind_package()来电只有在cinder已构建(generating the needed cinderConfig.cmake)时才有效。

它是如何运作的?

有关“搜索算法”的详细信息,请参阅 documentation of the find_package()。如果cinder PATH参数只指向找到cinderConfig.cmake文件的位置。

您可以使用find_package()

查看CMake的cmake -D CMAKE_FIND_DEBUG_MODE=ON ..正在做什么

<强>参考