Ubuntu 16.04 下pkg-config的安装与简介
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的安装与简介相关推荐
- Ubuntu 16.04下EasyOpenJTAG+OpenOCD的安装和使用【转】
本文转载自:http://www.linuxdiyf.com/linux/24086.html Ubuntu 16.04下EasyOpenJTAG+OpenOCD的安装和使用 发布时间:2016-09 ...
- Ubuntu 16.04下通过系统软件商店安装flameshot后无法启动问题解决方法
前言 日常工作中经常用到截图软件进行信息采集和工作记录,以用作工作备忘或者是写博客的素材资料.在Windows和macOS平台下有一款集截图和贴图于一体的神器Snipaste*能够极大的提高工作效率和 ...
- gtx1070显卡 linux,Ubuntu 16.04下Nvidia 显卡驱动安装
环境: Ubuntu 16.04 64bit Nvidia GeForce GTX 1070 解决了个人遇到的一些问题. 获取驱动 安装驱动的途径有很多,如run文件.deb文件.PPA源.apt-g ...
- linux ubuntu 16.04下deb文件的安装以及一些问题的解决
pkg 是Debian Package的简写,是为Debian 专门开发的套件管理系统,方便软件的安装.更新及移除.所有源自Debian的Linux发行版都使用dpkg,例如Ubuntu.Knoppi ...
- (待完善)Ubuntu 16.04下1080Ti显卡的安装方式
在Win10下,使用easyabd进行安装,视频线接到核显上. 已在Nvidia官网下载完1080Ti的驱动,进入BIOS关闭secure boot(进入Secure Boot界面后,光标移动至&qu ...
- 分享如何在Ubuntu 16.04下CUDA8.0
分享一篇在Ubuntu 16.04下CUDA8.0的安装过程的记录笔记. 1.安装驱动 最简单的安装方式是直接在"系统设置->软件和更新->附加驱动"中安装 这样的话, ...
- Ubuntu 16.04下NVIDIA GTX 960M显卡驱动的安装
Ubuntu 16.04下NVIDIA GTX 960M显卡驱动的安装 扩写于2017-12-6 记于2017-11-27 该方案亲测可行 准备工作 在进行本方案前请首先屏蔽nouveau驱动,具体方 ...
- Ubuntu 16.04下安装Caffe(GPU版本 GTX970)
Ubuntu 16.04下安装Caffe(GPU版本 GTX970) 个人分类: Deep Learning 2018年8月6日更新说明:距上次安装成功没多久,显卡驱动莫名失效,没有解决,索性重装了系 ...
- ubuntu 环境下调试mysql源码_【转】Ubuntu 16.04下 Mysql 5.7.17源码编译与安装
Ubuntu 16.04下 Mysql5.7.17源码编译与安装 系统环境 一. 系统安装条件 1.cmake MySQL使用cmake跨平台工具预编译源码,用于设置mysql的编译参数. sudo ...
- Ubuntu 16.04 下安装VMware Tools(三行命令搞定,亲测好使)
Ubuntu 16.04 下安装VMware Tools(三行命令搞定,亲测好使): 第一行命令:sudo apt-get upgrate 第二行命令:sudo apt-get install ope ...
最新文章
- manager的烦恼
- 随机生成元素升序向量_推荐系统中用户向量的表示学习
- 学习threeJS(一)--第一个threeJs
- [恢]hdu 2147
- c++实现决策树分类汽车评估数据集_R有监督机器学习-分类方法
- 一招教你如何修复MySQL slave中继日志损坏问题
- aspnet网站开发实例_给自己开发一个网站,这是我的方法。
- 设计模式——函数的写作使用外卖模式
- J2EE 第二阶段项目(八)
- Netty权威指南学习笔记
- 使用Rufus制作系统启动盘
- 【PIC单片机】-- LCD的相关知识
- 【ATSC】 为什么选择ATSC 3.0
- Solved - Safari keeps forcing HTTPS on localhost
- MFC PreTranslateMessage(MSG* pMsg)中调用DoModal()模态窗口问题
- LiveData浅析
- php获取用户访问的dns,dnsproxy in php
- 插入图片的时候,总是只是能漏出一点点其他部分都看不到,改变格式从插入型改成浮于文字上方才能完全显示,但浮于文字上方的格式最后不好排版和编辑,稍微一改,整个就乱了,求助如何让插入型的文字图片完全显示出来
- 适用于超小规模数据集的分类器
- 「C++简单实现斗地主」机关算尽的地主,却低估了我的实力