pkg-config

news/2024/9/23 15:29:22

一、pkg-config

pkg-config是一个命令行工具,主要用于帮助开发者在编译依赖于特定库的软件时,自动获取和设置正确的编译器选项和链接器选项。它的主要作用在于简化编译过程,确保程序能够正确地找到所需的头文件和库文件,尤其是在库文件可能安装在非标准位置的情况下。

pkg-config版本查询:

有时候会看到诸如此类的编译命令:

gcc source.c -o source `pkg-config --libs --cflags glib-2.0`

那么

`pkg-config --libs --cflags glib-2.0`

得到的结果是什么呢?其结果又是如何得到的呢?这样做的好处是什么呢?

二、pkg-config已支持的库

若用户安装了软件,则可以通过pkg-config查看:pkg-config --list-all

三、库的*.pc

pkg-config查找对应库的*.pc文件,例如glib-2.0.pc。该文件内声明了头文件目录、库文件目录以及库名称。例如查看该文件的内容,验证下

/usr/lib/x86_64-linux-gnu/pkgconfig/glib-2.0.pc

prefix=/usr
libdir=${prefix}/lib/x86_64-linux-gnu
includedir=${prefix}/includebindir=${prefix}/bin
glib_genmarshal=${bindir}/glib-genmarshal
gobject_query=${bindir}/gobject-query
glib_mkenums=${bindir}/glib-mkenumsName: GLib
Description: C Utility Library
Version: 2.64.6
Requires.private: libpcre >=  8.31
Libs: -L${libdir} -lglib-2.0
Libs.private: -pthread
Cflags: -I${includedir}/glib-2.0 -I${libdir}/glib-2.0/include

查找glib-2.0库的头文件目录和库文件目录以及库名称:pkg-config --libs --cflags glib-2.0

头文件目录:-I/usr/include/glib-2.0
库文件目录:-I/usr/lib/x86_64-linux-gnu/glib-2.0/include
库名称:-lglib-2.0

回到最开始的问题,我们编译source.c文件需要使用glib-2.0库文件,使用这个库文件需要找对应的头文件目录和库文件目录,有两种方式可以找到。

  • 第一种方式

通过这个dpkg -L 命令去找库的头文件目录和库文件目录:sudo dpkg -L libglib2.0-dev

  • 第二种方式

通过pkg-config命令去查找,这种方法更加简单、方便。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/46768.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

2024年6月计算机视觉论文推荐:扩散模型、视觉语言模型、视频生成等

6月还有一周就要结束了,我们今天来总结2024年6月上半月发表的最重要的论文,重点介绍了计算机视觉领域的最新研究和进展。 Diffusion Models 1、Autoregressive Model Beats Diffusion: Llama for Scalable Image GenerationLlamaGen,是一个新的图像生成模型,它将原始的大型…

COLA架构初始化DDD项目

使用COLA脚手架初始化项目 实战代码:https://gitee.com/XuXiaoCong/cola-springboot-demo COLA项目地址:https://github.com/alibaba/COLA BiliBili视频创建项目使用COLA脚手架(Maven)创建COLA项目DgroupId: 公司/组织名称 DartifactId:项目名称 Dversion:版本号 Dpackage:…

试用了下WPS定制版,真香!

告别广告和弹窗!告别广告和弹窗! 前言 现在办公/日常使用基本上都是离不开 office 三件套的了。我个人也曾购买过微软的 office 三件套,WPS 会员版: ​ ‍ ‍ ​ ‍ ‍ 随着消费降级, 使用一段时间后,我发现我根本用不上什么高级的功能,感觉不划算,几百块钱下馆子不香吗…

HarmonyOS应用开发——Hello World

下载 HUAWEI DevEco Studio: https://developer.harmonyos.com/cn/develop/deveco-studio/#download同意,进入配置页面:配置下载源以及本地存放路径,包括nodejs和ohpm:配置鸿蒙SDK路径:接受协议:确认无误后,点击下一步,开始自动下载有关环境以及依赖:全部下载完成,点击…

发文指南 | 生信植物科学类期刊近五年影响因子分享

前几天(2024.6.20)科睿唯安发布了《期刊引证报告》,公开2023年期刊最新影响因子。本号对植物科学领域和农林科学领域期刊做了及时分享:重磅出炉!2024植物科学领域&农林科学领域期刊影响因子 参与本号运营的小伙伴们基本都是生物信息、植物科学类的背景,因此我们对这类…

Grab 基于 Apache Hudi 实现近乎实时的数据分析

介绍 在数据处理领域,数据分析师在数据湖上运行其即席查询。数据湖充当分析和生产环境之间的接口,可防止下游查询影响上游数据引入管道。为了确保数据湖中的数据处理效率,选择合适的存储格式至关重要。 Vanilla数据湖解决方案构建在具有 Hive 元存储的云对象存储之上,其中数…

aspera下载nr数据库

ascp -QT -i ~/.aspera/connect/etc/asperaweb_id_dsa.openssh -l 1000M -k 1 -T anonftp@ftp.ncbi.nlm.nih.gov:/blast/db/nr.00.tar.gz ./

【昆虫识别系统】图像识别Python+卷积神经网络算法+人工智能+深度学习+机器学习+TensorFlow+ResNet50

一、介绍 昆虫识别系统,使用Python作为主要开发语言。通过TensorFlow搭建ResNet50卷积神经网络算法(CNN)模型。通过对10种常见的昆虫图片数据集(蜜蜂, 甲虫, 蝴蝶, 蝉, 蜻蜓, 蚱蜢, 蛾, 蝎子, 蜗牛, 蜘蛛)进行训练,得到一个识别精度较高的H5格式模型文件,然后使用Django…