首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在构建源代码之前,如何使用cmake来检查某些库是否存在?

问在构建源代码之前,如何使用cmake来检查某些库是否存在?
EN

Stack Overflow用户
提问于 2019-02-06 01:27:30
回答 3查看 3.1K关注 0票数 0

通常,开放源码包将有cmake来检查是否存在某些头或库,我希望我自己的项目具有同样的功能。

因此,我想知道cmake是否提供了一些命令来检查当前linux系统中是否存在".so"/".a"/".h“文件,如果没有,cmake会给我一些安装它们的提示吗?

cmake如何支持这一点?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-02-06 02:28:04

通常,人们会使用find_package(ABC REQUIRED),然后在项目中引用它。这将确保安装了依赖库,否则cmake将失败。

您可以在cmake安装中找到很多示例,例如,C:\Program Files\CMake\share\cmake-3.13\Modules\FindZLIB.cmake将搜索zlib库,方法是在文件系统中查找安装该库的正常位置,如果找到这些变量,它将相应地设置这些变量:

代码语言:javascript
复制
#   ZLIB_INCLUDE_DIRS   - where to find zlib.h, etc.
#   ZLIB_LIBRARIES      - List of libraries when using zlib.
#   ZLIB_FOUND          - True if zlib found.

要实现这个目标,可以使用cmake命令find_path找到头文件,并使用find_library找到库(静态库和共享库)。

票数 3
EN

Stack Overflow用户

发布于 2019-02-06 07:24:16

要搜索任意库,可以使用图书馆()命令。档案()也完成了头的相同任务。您还可以使用find_program()搜索可执行文件。

正如@Damian在他的naswer中所说的,许多库都提供"config“文件,比如FindBoost.cmake。通过调用find_package(Boost)命令可以找到这样的库。此命令将定位和加载配置文件,并设置相应的变量。

票数 2
EN

Stack Overflow用户

发布于 2019-02-06 11:40:15

您需要提供-config.cmake文件来告诉其他项目库和标头在哪里。这里,你会发现你在找什么。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54545465

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档