Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cmake 包与库_Cmake_Package_Libraries_Difference - Fatal编程技术网

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

我刚刚开始使用CMake,我注意到它们都有一个
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:我已经通过回答进行了修改。