07月 19th, 2008 我是菜鸟之pkg-config命令
接着凌晨的文章说。
昨天说自己被Ubuntu养懒了,确实懒了,懒得自己连系统的某些工具的用处都不知道。比如pkg-config
以前一直不知道,Linux下那么多库,在./configure时时怎么判断它们存不存在的,难道是靠递归搜索?现在我才知道我zt了,pkg-config这个命令和/*/lib/pkgconfig下的一些.pc文件才是主角。
每个.pc文件定义了库的名字、路径、编译选项等,比如glib-2.0.pc文件:
prefix=/usr
exec_prefix=${prefix}
libdir=/usr/lib
includedir=${prefix}/includeglib_genmarshal=glib-genmarshal
gobject_query=gobject-query
glib_mkenums=glib-mkenumsName: 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-config命令会首先去PKG_CONFIG_PATH定义好的路径下搜索库名字对应的.pc文件,找到了就行了,等会儿make的时候就可以通过正则表达式取出libs和cflags的值来使用,否则的话就报错。
刚才pkg-config提示没有libgnomeui-2.0的库,我找了一下,找到了这个.pc文件呀,但是pkg-config就是说找不到。我脑子抽筋了那么几分钟,终于意识到,在~/.bashrc中,添加libgnomeui-2.0所在的文件夹路径到PKG_CONFIG_PATH下:
1 | export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig |
然后source ~/.bashrc就可以了。
顺便说一句,编译真是个惊心动魄的过程啊,不亚于看恐怖小说。
凌晨的时候系统坏了,现在重装好,配置好,恢复到了凌晨的状态了,sigh - b
如果您喜欢本站的内容,欢迎订阅我的RSS以获取本站最新资讯。
大中华局域网用户订阅地址:http://feed.casparant.com/
国际互联网用户订阅地址:http://feeds.casparant.com/casparant
Related Posts
---------- COPYRIGHT (C) CasparAnt.COM 2008 ----------
本站所有文章均遵循“创作共用条款(CC)3.0版本”, 允许转载演绎本站文章,仅需遵循以下原则:保留文章出处(URL及站名Caspar Ant), 并且给我一个 引用通告(trackback)。如果您觉得本站的文章很好,欢迎选择下面的网络书签收藏本文; 如果您觉得本站值得浏览,欢迎点击侧边栏进行订阅;欢迎您对文章发表评论,您的留言是对我最好的鼓励!
This entry is under CREATIVE COMMON ATTRIBUTION 3.0 LICENSE. Please remain "Caspar Ant" and the URL stay in your site when you share or remix this entry. It's necessary to give me a trackback from your own site. If you think this entry is good enough, welcome to put it to your own web bookmark. You can select from the bookmark sites at follows:


















07月 21st, 2008 at 8:07 pm Quote
以前编译是就help一下后加一个类似于--with-lib=的东东, 原来是这样,受教了
[回复]
07月 31st, 2008 at 7:48 pm Quote
其实敲命令是种享受,嘎嘎。。。
[回复]
07月 31st, 2008 at 8:15 pm Quote
@Pabi
赞~~说得太好了~
[回复]