【发布时间】:2015-03-04 19:38:49
【问题描述】:
我正在调试一个找不到某些包的 cmake 文件(使用 find_package())。 find_package() 在搜索包时实际上做了什么,我可以通过命令行调用来模拟它(不调用 cmake)吗?
【问题讨论】:
标签: cmake
我正在调试一个找不到某些包的 cmake 文件(使用 find_package())。 find_package() 在搜索包时实际上做了什么,我可以通过命令行调用来模拟它(不调用 cmake)吗?
【问题讨论】:
标签: cmake
1. find_package 的作用:
来自documentation of find_package():
CMake 在 CMAKE_MODULE_PATH 中搜索名为 Find.cmake 的文件,然后安装 CMake。如果找到该文件,则由 CMake 读取和处理。
在 Linux 上,默认脚本通常位于此处:
ls /usr/share/cmake*/Modules/Find*.cmake
2。如何在命令行中使用 find_package:
# cmake --find-package -DNAME=Boost -DCOMPILER_ID=GNU -DLANGUAGE=C -DMODE=EXIST
Boost found
# cmake --find-package -DNAME=Boost -DCOMPILER_ID=GNU -DLANGUAGE=C -DMODE=COMPILE
-I/usr/include
# cmake --find-package -DNAME=Boost -DCOMPILER_ID=GNU -DLANGUAGE=C -DMODE=LINK
-rdynamic
【讨论】:
man cmake,这个“不应该在新项目中使用”。但是你可以使用类似pkg-config aruco --modversion