find_package和pkg_search_module有什么区别

阿恩

关于这些命令,我​​现在只能说的是pkg_search_module有一些奇怪的用法,在这里我必须写两次我想要的依赖项。而不是像在find_package中那样

pkg_search_module(ZLIB REQUIRED zlib)
#seriously two times zlib and once in only capital case‽
find_package(ZLIB)
#much cleaner but for some odd reason find_package does not work all the time
ComicSansMS

pkg_search_module使用该pkg-config工具确定请求的库的位置。这在pkg-config已经使用的系统上最有用,因此您不需要为CMake复制所有信息。请注意,此方法存在潜在的可移植性问题,因为它需要pkg-config在构建计算机上正确设置。

find_package另一方面是CMake自己解决相同问题的机制。为此,您需要为请求的库提供一个CMake查找脚本(CMake已经附带了其中的两个,但是您可以轻松编写自己的脚本),或者由请求的库本身提供一个软件包配置脚本无论哪种情况,您都可能需要CMAKE_MODULE_PATH针对CMake进行调整才能找到相应的脚本。

使用哪种选择非常简单:

  • 如果库提供的话,请总是喜欢软件包配置脚本。
  • 将查找脚本用作不了解CMake的库的后备。
  • 使用pkg_search_module,如果你想利用与协同效应pkg-config特别是,请注意,可以使用pkg_search_module获取所需信息的一种方法来实现查找脚本

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章