Cmake 包与库
我刚刚开始使用CMake,我注意到它们都有一个Cmake 包与库,cmake,package,libraries,difference,Cmake,Package,Libraries,Difference,我刚刚开始使用CMake,我注意到它们都有一个find_包和一个find_库。这让我很困惑。有人能解释一下编程世界中包和库的区别吗?或者,在CMake的世界里 谢谢你们,伙计们 假设您想在项目中使用zlib,您需要找到头文件zlib.h,以及库libz.so(在Linux上)。您可以使用低级cmake命令find_path和find_library来查找它们,也可以使用find_package(ZLIB)。后面的命令将尝试找出使用zlib所需的所有内容。它可以是额外的宏定义或依赖项 更新,关于f
find_包
和一个find_库
。这让我很困惑。有人能解释一下编程世界中包和库的区别吗?或者,在CMake的世界里
谢谢你们,伙计们 假设您想在项目中使用zlib,您需要找到头文件
zlib.h
,以及库libz.so
(在Linux上)。您可以使用低级cmake命令find_path
和find_library
来查找它们,也可以使用find_package(ZLIB)
。后面的命令将尝试找出使用zlib所需的所有内容。它可以是额外的宏定义或依赖项
更新,关于
find_-package
的更多详细信息:当调用CMake命令find_-package(SomeThing)
时,有两种可能:模块模式(搜索文件FindSomeThing.CMake
)或配置模式(搜索名为SomeThingConfig.CMake
)的文件)。对于ZLIB,有一个名为FindZLIB
的模块,它是CMake本身附带的(在我的Linux机器上是文件/usr/share/CMake/Modules/FindZLIB.CMake
)。该模块是一个CMake脚本,它使用CMake API在默认位置搜索ZLIB文件,如果无法自动找到,则向用户询问位置。ZLIB是如何定义的?谁编写了必要的命令来找出使用zlib所需的内容?@ShrimpCrackers:我已经通过回答进行了修改。