定义

pkg-config是一款用于返回已安装库元信息的工具;

(语法)概要

pkg-config [--modversion] [--help] [--print-errors] [--silence-errors] [--cflags] [--libs] [--libs-only-L] [--libs-only-l] [--cflags-only-I] [--variable=VARIABLENAME] [--define-variable=VARIABLENAME=VARIABLEVALUE] [--uninstalled] [--exists] [--atleast-version=VERSION] [--exact-version=VERSION] [--max-version=VERSION] [LIBRARIES...]

说明

pkg-config用于检索系统中已安装库的信息;其典型应用场景是编译或链接一个或多个库(依赖检查),例如以下是Makefile中的使用场景:

program: program.c

cc program.c

'pkg-config --cflags --libs gnomeui'

pkg-config从特定配置文件中检索安装包信息,此类文件默认以.pc结尾,pkg-config在prefix/lib/pkgconfig目录下搜索,同时也会在PKG_CONFIG_PATH 环境变量指定的冒号分隔的路径列表中检索(Windows下是分号); 在pkg-config命令行指定的包名,对应去掉 .pc 扩展名后的元数据的配置文件名。如果一个库同时安装了多个版本,库名必须加版本号以便区分(例如GTK 1.2的包名可能是"gtk+"而 GTK 2.0是 "gtk+-2.0")。

命令行选项

--modversion

检索命令行指定库名版本信息,如果pkg-config能找到命令行中所有库,则将其版本号打印到标准输出,每个版本号一行,此时pkg-config成功退出。如果一个或多个库未找到,pkg-config返回非零错误码,标准输出内容为未定义。

--help

显示帮助信息并退出

--cflags

打印命令行指定的包编译时所需预处理和编译标识符,包括其他依赖所需标识符;标识符是被压缩的,以保证每个标识符只出现一次;如果命令行指定的一个或多个包元数据找不到,pkg-config返回非零错误码。

--libs

等同"--cflags",但是只打印链接标识符。和"--cflags"一样,重复的标识符被合并,第三方依赖所需标识符被打印到输出。

--libs-only-L

输出"--libs"的-L/-R部分.意思是其中定了依赖库的搜索路径,但不指定链接哪个库。

--libs-only-l

打印命令行指定库的"--libs"的-l部分。但是!"--libs-only-l" 和 "--libs-only-L"加起来可能比"--libs"涵盖内容少,因为例如-rdynamic上的差异.

Environment Variables

PKG_CONFIG_PATH

冒号分隔的.pc 文件检索路径列表。该路径检索完后默认路径也会被检索,默认路径是libdir/pkgconfig:datadir/pkgconfig。libdir是 pkg-config安装目录下的lib和data目录.

pkg-config手册的更多相关文章

  1. anaconda2下面安装opencv2.4.13.4完成----解决默认安装的问题----Thefunction is not implemented. Rebuild the library with Windows, GTK+ 2.x orCarbon support. If you are on Ubuntu or Debian, install libgtk2.0‑dev and pkg

    转载自:http://blog.csdn.net/qingyanyichen/article/details/73550924 本人下载编译安装了opencv2.4.9,oppencv2.4.10,o ...

  2. [hyperscan][pkg-config] hyperscan 从0到1路线图

    经过一系列的研究学习,知识储备之后,终于,可以开始研究hyperscan了. [knowledge][模式匹配] 字符匹配/模式匹配 正则表达式 自动机 [knowledge][perl][pcre] ...

  3. 《手把手教你构建自己的 Linux 系统》学习笔记(8)

    目录 Binutils 软件包有什么用? make -k 的作用是什么? man-pages 里有几种文档?分别表示什么意思? 如何查询指定目录的 man-pages ? 如何使用 make 命令的同 ...

  4. 通过form表单的形式下载文件。

    在项目中遇到问题,要求动态拼接uri下载文件.但是由于项目的安全拦截导致window.location.href 和 window.open等新建窗口的方法都不行. 无意间百度到了通过form表单来下 ...

  5. 【转】GCC使用简介

    Linux系统下的gcc(GNU C Compiler)是GNU推出的功能强大.性能优越的多平台编译器,是GNU的代表作品之一.gcc是可以在多种硬体平台上编译出可执行程序的超级编译器,其执行效率与一 ...

  6. GCC 命令行详解 -L 指定库的路径 -l 指定需连接的库名(转载)

    转载自:http://www.cnblogs.com/cy163/archive/2009/03/12/1409434.html 1.gcc包含的c/c++编译器gcc,cc,c++,g++,gcc和 ...

  7. GCC 命令行具体解释

    作者: www.linuxfans.org mozilla 1.gcc包括的c/c++编译器gcc,cc,c++,g++,gcc和cc是一样的,c++和g++是一样的,(没有看太明确前面这半句是什么意 ...

  8. Msys+MinGW编译VLC

      说明:本文只是对官方文档进行简单的翻译总结,旨在帮助一些英文不太好的朋友.官方文档请见wiki.videolan.org/Win32CompileMSYSNew. Msys是MinGW的一个辅助工 ...

  9. gcc编译器命令使用详解

    1.gcc包含的c/c++编译器gcc,cc,c++,g++,gcc和cc是一样的,c++和g++是一样的,(没有看太明白前面这半句是什么意思:))一般c程序就用gcc编译,c++程序就用g++编译 ...

  10. pkg-config命令的Makefile.am

    举例:通过Makefile调用pkg-config命令. pkg-config - Return metainformation about installed libraries (为了使用lib库 ...

随机推荐

  1. 将SQL从phpmyadmin导入到自己的Navicat

    数据库名称太有指向性了 容易把自己给干没了 一码得码的一塌糊涂 就不放图了 进入你的phpmyadmin 注意一定要好好的进到数据库里面 点击导出 如果提示是 正在导出数据库"{你的数据库名 ...

  2. Spring-Bean的依赖注入的数据类型

    Spring-Bean的依赖注入的数据类型 除了对象的引用可以注入,普通数据类型,集合等都可以在容器中进行注入 数据的三种数据类型 普通数据类型 引用数据类型 集合数据类型 普通数据类型 public ...

  3. HTML超文本标记语言1

    一.简介-HTML 1.什么是HTML?? 首先,HTML是WWW的描述语言,由Tim Berners-lee提出. HTML是用于描述网页的一种语言 html是指超文本标记语言(HyperText ...

  4. SQL Server 内存占用较高 - 清除缓存 或 设置内存最大占用值

    SQL Server对服务器内存的使用策略是用多少内存就占用多少内存,只用在服务器内存不足时,才会释放一点占用的内存,所以SQL Server 服务器内存往往会占用很高 查看内存状态: DBCC Me ...

  5. nlp入门(五)隐马尔科夫模型

    源码请到:自然语言处理练习: 学习自然语言处理时候写的一些代码 (gitee.com) 一.马尔科夫模型概念 1.1 马尔科夫模型:具有马尔可夫性质并以随机过程为基础的模型 1.2 马尔科夫性质:过去 ...

  6. Ubuntu虚拟机安装以及在Ubuntu上安装pycharm

    一.在VMware上安装Ubuntu操作系统 1.下载Ubuntu镜像文件 下载地址:清华大学开源软件镜像站 | Tsinghua Open Source Mirror 参考文章:Ubuntu系统下载 ...

  7. MindSponge分子动力学模拟——软件架构(2023.08)

    技术背景 在前面一篇文章中,我们介绍了MindSponge的两种不同的安装与使用方法,让大家能够上手使用.这篇文章主要讲解MindSponge的软件架构,并且协同mindscience仓库讲解一下二者 ...

  8. 文心一言 VS 讯飞星火 VS chatgpt (84)-- 算法导论8.2 1题

    一.用go语言,参照图8-2 的方法,说明 COUNTING-SORT 在数组 A=(6,0,2,0,1,3,4,6,1,3,2)上的操作过程. 文心一言: Counting Sort 是一种非比较型 ...

  9. API对接需求如何做需求调研,需要注意什么?

    随着互联网的发展,越来越多的企业开始将自己的业务系统通过API接口与其他系统进行对接,以便于数据的共享.协同操作等.在进行API对接之前,需要对用户需求进行深入的调研,以便于能够准确的设计出满足用户需 ...

  10. ELK环境部署-Filebeat数据收集(三)

    一.安装JAVA环境 1.解压jdk压缩包 abc@elk:~$ sudo tar -zxvf jdk-11.0.18_linux-x64_bin.tar.gz -c jdk11 2.添加环境变量 a ...