关于这些命令,我现在只能说的是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
pkg_search_module
使用该pkg-config
工具确定请求的库的位置。这在pkg-config
已经使用的系统上最有用,因此您不需要为CMake复制所有信息。请注意,此方法存在潜在的可移植性问题,因为它需要pkg-config
在构建计算机上正确设置。
find_package
另一方面是CMake自己解决相同问题的机制。为此,您需要为请求的库提供一个CMake查找脚本(CMake已经附带了其中的两个,但是您可以轻松编写自己的脚本),或者由请求的库本身提供一个软件包配置脚本。无论哪种情况,您都可能需要CMAKE_MODULE_PATH
针对CMake进行调整才能找到相应的脚本。
使用哪种选择非常简单:
pkg_search_module
,如果你想利用与协同效应pkg-config
。特别是,请注意,可以使用pkg_search_module
获取所需信息的一种方法来实现查找脚本。本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句