做好自己份内事
分类: LINUX
2016-07-19 11:18:56
首先要明白pkg-config仅仅是一个工具,如同linux下众多工具其中一个。
在linux各个版本中有的系统自带,有些并没有自带。
在命令行执行pkg-config:
如果返回Must specify package names on the command line则表示pkg-config已经安装,
如果返回pkg-config: command not found则表示pkg-config没有安装
安装pkg-config:
下载的地址:
解压之后进入目录:分别执行:
./configure&make&make check&make install
安装,install时需要sudo权限哦。
pkg-config其实是一个并非安装在默认系统默认路径下的开发包,管理开发包的头文件和依赖库的。至于动态库还是需要加入/etc/ld.so.conf文件中,并执行ldconfig命令。系统默认的头文件路径:/usr/include/,库文件路径:/usr/lib/,二进制文件则为/usr/bin/、/bin/、/usr/sbin/
等下。一些常用的命令或者常用的开发库最好安装在默认路径下。对于一个可能需要更好管理而没有安装在默认路径下的开发包可以用pkg-config来管理。不过也是需要对应的开发包有对应的*.pc文件。此文件一般在开发包安装路径下/lib/pkgconfig/目录下。
查看对应的.pc文件会发现里面记录是当前一些路径消息。
对于的pkg-config如何知道对应的.pc文件路径的话。需要我们手动设置,命令如下:
export PKG_CONFIG_PATH=/opt/gtk/lib/pkgconfig:$PKG_CONFIG_PATH
其中路径及为对应的.pc文件路径,不过这样设置仅仅对当前窗口有效,可以将上述语句写入系统变量文件中。这样执行对于库查找文件及可以查找到对应的路径文件和库文件信息:
pkg-config --cflags --libs libpjproject
pkg-config –cflags glib-2.0
最后一个参数对于.pc文件的文件名。
这样才对于的Makefile就可以这样撰写了:
gcc -c `pkg-config –cflags glib-2.0` sample.c
gcc sample.o -o sample `pkg-config –libs glib-2.0`
gcc sample.c -o sample `pkg-config –cflags –libs glib-2.0`
就不需要写全路径或者列举所有的头文件了,不过如果没有对应的.pc文件如果自己自己撰写.pc文件,我没有试过。如果不行的话,就自己在写Makefile的时候自己写全路径了哦。