【发布时间】:2015-07-30 20:52:01
【问题描述】:
我在CONFIG模式下使用find_package来查找Qt5:
find_package(Qt5 CONFIG REQUIRED COMPONENTS Core)
我没有指定 CMAKE_PREFIX_PATH 并且 /home/user/Qt/5.5/gcc_64/bin 未在 PATH 中设置,但 cmake 找到 *Config.cmake 文件:
/home/user/Qt/5.5/gcc_64/lib/cmake/Qt5/Qt5Config.cmake
/home/user/Qt/5.5/gcc_64/lib/cmake/Qt5Core/Qt5CoreConfig.cmake
它是如何工作的? cmake 如何创建搜索路径?
编辑1
我阅读了一份文档,但我不清楚:
<prefix>/(lib/<arch>|lib|share)/cmake/<name>*/ (U)
<prefix>/(lib/<arch>|lib|share)/<name>*/ (U)
<prefix>/(lib/<arch>|lib|share)/<name>*/(cmake|CMake)/ (U)
什么是前缀?上述模式如何与 Qt 路径匹配? :
/home/user/Qt/5.5/gcc_64/lib/cmake/Qt5/Qt5Config.cmake
我为我的库创建了一个类似的路径:
/home/user/Mylib/1.0/gcc_64/lib/cmake/Mylib1/Mylib1Config.cmake
但find_package(Mylib1 CONFIG) 返回错误:
CMake Warning at CMakeLists.txt:14 (find_package):
Could not find a package configuration file provided by "Mylib1" with any
of the following names:
Mylib1Config.cmake
mylib1-config.cmake
Add the installation prefix of "Mylib1" to CMAKE_PREFIX_PATH or set
"Mylib1_DIR" to a directory containing one of the above files. If "Mylib1"
provides a separate development package or SDK, be sure it has been
installed.
【问题讨论】:
-
还有更多前缀,由 CMake 搜索查找配置文件。请参阅
find_package上的文档:cmake.org/cmake/help/v3.0/command/find_package.html -
这是一个有趣的问题。你找到答案了吗?
标签: cmake