接着凌晨的文章说。

昨天说自己被Ubuntu养懒了,确实懒了,懒得自己连系统的某些工具的用处都不知道。比如pkg-

以前一直不知道,Linux下那么多库,在./configure时时怎么判断它们存不存在的,难道是靠递归搜索?现在我才知道我zt了,pkg-这个命令和/*/lib/pkgconfig下的一些.pc文件才是主角。

每个.pc文件定义了库的名字、路径、编译选项等,比如glib-2.0.pc文件:

prefix=/usr
exec_prefix=${prefix}
libdir=/usr/lib
includedir=${prefix}/include

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

Name: Glib
Description: C Utilitiy Library
Version: 2.14.4
Libs: -L${libdir} -lglib-2.0
Cflags: -I${includedir}/glib-2.0 -I${libdir}/glib-2.0/include

configure到某个时刻的时候,pkg-命令会首先去PKG_CONFIG_PATH定义好的路径下搜索库名字对应的.pc文件,找到了就行了,等会儿make的时候就可以通过正则表达式取出libs和cflags的值来使用,否则的话就报错。

刚才pkg-提示没有libgnomeui-2.0的库,我找了一下,找到了这个.pc文件呀,但是pkg-就是说找不到。我脑子抽筋了那么几分钟,终于意识到,在~/.bashrc中,添加libgnomeui-2.0所在的文件夹路径到PKG_CONFIG_PATH下:

1
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig

然后source ~/.bashrc就可以了。

顺便说一句,编译真是个惊心动魄的过程啊,不亚于看恐怖小说。

凌晨的时候系统坏了,现在重装好,配置好,恢复到了凌晨的状态了,sigh - b

欢迎光临Caspar Ant,如果您喜欢本站的内容,欢迎订阅我的RSS;如果您需要出于非商业性质的转载,请先阅读版权声明页面。

日志标签

相关日志

日志信息

本文的Trackback地址为:http://www.casparant.com/pkg-config.html/trackback,转载本站文章前请仔细阅读本站的版权声明页。您也可以选择点击下列按钮收藏本文到网络书签中:

Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪ViVi 365Key网摘 天极网摘 和讯网摘 博拉网 POCO网摘 添加到饭否 QQ书签 Digbuzz我挖网

3 Responses to “我是菜鸟之pkg-config命令”

Leave a Reply


Powered by Wordpress © 2008 - Caspar Ant | iKon Theme by TextNData | Admin | 京ICP备09031755号