Ubuntu 16.04 下pkg-config的安装与简介
原创 BRUCE_WUANG 最后发布于2019-08-19 11:33:06 阅读数 2957 收藏
展开
1. 什么是pkg-config

简单的说就是向用户向程序提供相应库的路径、版本号等信息的程序

譬如说我们运行以下命令

pkg-config  查看gcc的CFLAGS参数
pkg-config --libs --cflags opencv

显示

-I/usr/include/opencv -lcxcore -lcv -lhighgui -lcvaux

1.1 这不就是我们用gcc编译连接时CFLAGS的参数吗?

因此当我们需要编译连接某个库时,我们只需要把上面那行加入gcc 的参数里面即可

这也是configure的作用:它会检查你需要的包,产生相应的信息。
1.2 那pkg-config从哪儿知道这些信息的呢?

它是从包名为xxx.pc这个文件中查找到的。
拿上面那个例子说,它是从opencv.pc这个文件中查知的。
那pkg-config 又怎么会知道opencv.pc这个文件呢?
1.3 pkg-config是怎样工作的?

缺省情况下,pkg-config首 先在prefix/lib/pkgconfig/中查找相关包(譬如opencv)对应的相应的文件(opencv.pc)

在linux上上述路径名为 /usr/lib/pkconfig/
若是没有找到,它也会到PKG_CONFIG_PATH这个环境变量所指定的路径下去找。
若是没有找到,它就会报 错,例如:

Package opencv was not found in the pkg-config search path.
Perhaps you should add the directory containing `opencv.pc'
to the PKG_CONFIG_PATH environment variable
No package 'opencv' found

设置环境变量PKG_CONFIG_PATH方法举例如下:
export PKG_CONFIG_PATH=/cv/lib:$PKG_CONFIG_PATH
1.4 查看一个.pc文件的内容:

[root@yx pkgconfig]# cat glib-2.0.pc
prefix=/usr
exec_prefix=/usr
libdir=/lib
includedir=/usr/include
configexecincludedir=/usr/lib/glib-2.0/include

glib_genmarshal=glib-genmarshal
gobject_query=gobject-query
glib_mkenums=glib-mkenums

Name: GLib
Description: C Utility Library
Version: 2.12.3
Libs: -L${libdir} -lglib-2.0  
Cflags: -I${includedir}/glib-2.0 -I${configexecincludedir}

[root@yx pkgconfig]# pwd
/usr/lib/pkgconfig

可见.pc文件 是对其的库文件路径,头文件路径,版本号,Cflags等一些参数进行封装。

上面部分来源于:http://www.cppblog.com/colorful/archive/2012/05/05/173750.html

Ubuntu 16.04 下pkg-config的安装与简介相关推荐

  1. Ubuntu 16.04下EasyOpenJTAG+OpenOCD的安装和使用【转】

    本文转载自:http://www.linuxdiyf.com/linux/24086.html Ubuntu 16.04下EasyOpenJTAG+OpenOCD的安装和使用 发布时间:2016-09 ...

  2. Ubuntu 16.04下通过系统软件商店安装flameshot后无法启动问题解决方法

    前言 日常工作中经常用到截图软件进行信息采集和工作记录,以用作工作备忘或者是写博客的素材资料.在Windows和macOS平台下有一款集截图和贴图于一体的神器Snipaste*能够极大的提高工作效率和 ...

  3. gtx1070显卡 linux,Ubuntu 16.04下Nvidia 显卡驱动安装

    环境: Ubuntu 16.04 64bit Nvidia GeForce GTX 1070 解决了个人遇到的一些问题. 获取驱动 安装驱动的途径有很多,如run文件.deb文件.PPA源.apt-g ...

  4. linux ubuntu 16.04下deb文件的安装以及一些问题的解决

    pkg 是Debian Package的简写,是为Debian 专门开发的套件管理系统,方便软件的安装.更新及移除.所有源自Debian的Linux发行版都使用dpkg,例如Ubuntu.Knoppi ...

  5. (待完善)Ubuntu 16.04下1080Ti显卡的安装方式

    在Win10下,使用easyabd进行安装,视频线接到核显上. 已在Nvidia官网下载完1080Ti的驱动,进入BIOS关闭secure boot(进入Secure Boot界面后,光标移动至&qu ...

  6. 分享如何在Ubuntu 16.04下CUDA8.0

    分享一篇在Ubuntu 16.04下CUDA8.0的安装过程的记录笔记. 1.安装驱动 最简单的安装方式是直接在"系统设置->软件和更新->附加驱动"中安装 这样的话, ...

  7. Ubuntu 16.04下NVIDIA GTX 960M显卡驱动的安装

    Ubuntu 16.04下NVIDIA GTX 960M显卡驱动的安装 扩写于2017-12-6 记于2017-11-27 该方案亲测可行 准备工作 在进行本方案前请首先屏蔽nouveau驱动,具体方 ...

  8. Ubuntu 16.04下安装Caffe(GPU版本 GTX970)

    Ubuntu 16.04下安装Caffe(GPU版本 GTX970) 个人分类: Deep Learning 2018年8月6日更新说明:距上次安装成功没多久,显卡驱动莫名失效,没有解决,索性重装了系 ...

  9. ubuntu 环境下调试mysql源码_【转】Ubuntu 16.04下 Mysql 5.7.17源码编译与安装

    Ubuntu 16.04下 Mysql5.7.17源码编译与安装 系统环境 一. 系统安装条件 1.cmake MySQL使用cmake跨平台工具预编译源码,用于设置mysql的编译参数. sudo ...

  10. Ubuntu 16.04 下安装VMware Tools(三行命令搞定,亲测好使)

    Ubuntu 16.04 下安装VMware Tools(三行命令搞定,亲测好使): 第一行命令:sudo apt-get upgrate 第二行命令:sudo apt-get install ope ...

最新文章

  1. manager的烦恼
  2. 随机生成元素升序向量_推荐系统中用户向量的表示学习
  3. 学习threeJS(一)--第一个threeJs
  4. [恢]hdu 2147
  5. c++实现决策树分类汽车评估数据集_R有监督机器学习-分类方法
  6. 一招教你如何修复MySQL slave中继日志损坏问题
  7. aspnet网站开发实例_给自己开发一个网站,这是我的方法。
  8. 设计模式——函数的写作使用外卖模式
  9. J2EE 第二阶段项目(八)
  10. Netty权威指南学习笔记
  11. 使用Rufus制作系统启动盘
  12. 【PIC单片机】-- LCD的相关知识
  13. 【ATSC】 为什么选择ATSC 3.0
  14. Solved - Safari keeps forcing HTTPS on localhost
  15. MFC PreTranslateMessage(MSG* pMsg)中调用DoModal()模态窗口问题
  16. LiveData浅析
  17. php获取用户访问的dns,dnsproxy in php
  18. 插入图片的时候,总是只是能漏出一点点其他部分都看不到,改变格式从插入型改成浮于文字上方才能完全显示,但浮于文字上方的格式最后不好排版和编辑,稍微一改,整个就乱了,求助如何让插入型的文字图片完全显示出来
  19. 适用于超小规模数据集的分类器
  20. 「C++简单实现斗地主」机关算尽的地主,却低估了我的实力

热门文章

  1. Python输入一个奇数打印出菱形
  2. Excel 解压后 结构
  3. 国外社交网站的share分享
  4. [小说]魔王冢(43)门下子
  5. DELPHI国外经典站
  6. 【CTSC2018】青蕈领主
  7. FZU - 2230 翻翻棋
  8. 企业部门网络规划设计(课程报告+拓扑图源文件)
  9. HTML <br> 标签的 clear 属性
  10. python统计库存_通过Python中的pandas将每日库存数据转换为每周库存数据