首页 > 其他分享 >pkg-config

pkg-config

时间:2024-06-23 11:32:43浏览次数:19  
标签:glib 文件目录 -- pkg 2.0 config

一、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}/include

bindir=${prefix}/bin
glib_genmarshal=${bindir}/glib-genmarshal
gobject_query=${bindir}/gobject-query
glib_mkenums=${bindir}/glib-mkenums

Name: 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命令去查找,这种方法更加简单、方便。

标签:glib,文件目录,--,pkg,2.0,config
From: https://www.cnblogs.com/caojun97/p/18247182

相关文章

  • Spring Boot 源码分析五:Spring Boot AutoConfiguration 自动配置机制
    1.引言在前几篇文章中,我们探讨了SpringBoot的启动流程及其扩展机制。在本篇文章中,我们将深入分析SpringBoot的自动配置(AutoConfiguration)机制,这是SpringBoot最具特色和强大的功能之一。2.自动配置概述SpringBoot的自动配置机制旨在根据项目中的类路径和配置属性,自......
  • apisix~为自定义插件设计一个configmap脚本
    configMapKubernetes中的ConfigMap是一种用来存储配置数据的API资源,它允许您将配置信息以键值对的形式保存,并在容器中使用这些配置信息。ConfigMap提供了一种将配置数据与应用程序解耦的方式,使得应用程序可以动态地获取配置而无需重新构建镜像。以下是ConfigMap的一些特......
  • vue.config.js基础配置
    constpath=require('path')constUglifyPlugin=require('uglifyjs-webpack-plugin')module.exports={publicPath:'./',//基本路径outputDir:'dist',//输出文件目录lintOnSave:false,//eslint-loader是否在保存的......
  • aggregate ‘QSslConfiguration conf‘ has incomplete type and cannot be defined
    用Qt进行网络开发,所以程序中包含了network模块,但编译Qt程序时报错aggregate'QSslConfigurationconf'hasincompletetypeandcannotbedefined,报错截图如下QSslConfiguration类是Qt框架中用于SSL配置的一部分,报错表示编译器没有找到QSslConfiguration的完整定义,需......
  • 【K8s】专题五(4):Kubernetes 配置之 ConfigMap 与 Secret 使用
    以下内容均来自个人笔记并重新梳理,如有错误欢迎指正!如果对您有帮助,烦请点赞、关注、转发!欢迎扫码关注个人公众号!目录一、ConfigMap使用方式1、注入环境变量2、挂载配置文件二、Secret使用方式1、注入环境变量2、设置镜像密钥3、设置TLS凭据一、ConfigMap使用方......
  • 使用pkg -r 命令选项向jail虚拟子系统里安装软件@FreeBSD
    刷FreeBSD论坛的时候,看到这样一招:使用pkg-r选项,往jail等虚拟机子系统里安装软件。jails-Howtoinstallapkgofflineintoajail?|TheFreeBSDForumsroot@fbhost:~#pkgpkg:notenoughargumentsUsage:pkg[-v][-d][-l][-N][-j<jailnameorid>|-c<chro......
  • nacos-config搭建
    重点:文件加载优先级 bootstrap.yml 》 工程应用下application.yml> share.yml>  share2.yml> common.yml > common2.yml> nacos-user-service,yml> nacos-user-service-dev.yml 可知相同配置项覆盖顺序nacos-user-service-dev.yml>nacos-user-service,yml......
  • Docker+Jenkins+Pipline实现Vue项目input选择不同差异性config文件并修改文件内容后打
    场景Docker+Jenkins+Pipline实现SpringBoot项目input选择不同差异性yml文件打包、执行sh打包压缩包、使用archiveArtifacts下载制品(jar包、压缩包):https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/139748758DockerCompose+Jenkins+Pipeline流水线打包Vue项目(解压......
  • Windows ipconfig命令用法简单介绍
    windows的图形界面操作起来很舒服,但是有时候不熟悉的话又会比较难操作,因此通过一定的命令行可以帮助我们完成网络配置和故障排除,Windowsipconfig命令无疑是一个不错的工具。本次就来简单讲述一下ipconfig命令的各种用法和技巧,帮助你更好地管理和优化你的网络连接,以及应对电脑有......
  • Linux – menuconfig讲解
    menuconfig1.简介        menuconfig是一套图像化配置工具,由ncurses库提供软件支持。ncurses库提供了一系列的函数以便使用者调用它们去生成基于文本的用户界面。        menuconfig本身的软件只负责提供menuconfig工作的这一套逻辑,比如说通过上下左右调整......