快速业务通道

linux里命令pkg-config工具的使用

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-04-15
的搜索路径的设置变成了对 .pc 文件搜索路径的设置..pc 文件的搜索路径是通过环境变量 PKG_CONFIG_PATH 来设置的,pkg-config 将按照设置路径的先后顺序进行搜索,直到找到指定的 .pc 文件为止.

  安装完 Glib 后,在 bash 中应该进行如下设置:

  $ export PKG_CONFIG_PATH=/opt/gtk/lib/pkgconfig:$PKG_CONFIG_PATH

  可以执行下面的命令检查是否 /opt/gtk/lib/pkgconfig 路径已经设置在 PKG_CONFIG_PATH 环境变量中:

  $ echo $PKG_CONFIG_PATH

  这样设置之后,使用 Glib 库的其它程序或库在编译的时候 pkg-config 就知道要到 /opt/gtk/lib/pkgconfig 这个目录中去寻找 glib-2.0.pc 了(GTK 和其它的依赖库的 .pc 文件也将拷贝到这里,也会到这里搜索它们对应的 .pc 文件).之后,通过 pkg-config 就可以把其中库的编译和连接参数提取出来供程序在编译和连接时使用.

Empire CMS,phome.net

  另外还需要注意的是:环境变量的设置只对当前的终端窗口有效.如果到了没有进行上述设置的终端窗口中,pkg-config 将找不到新安装的 glib-2.0.pc 文件、从而可能使后面进行的安装(如 Glib 之后的 Atk 的安装)无法进行.

  在我们采用的安装方案中,是使用环境变量对 GTK 及其依赖库进行的设置,当系统重新启动、或者新开一个终端窗口之后,如果想使用新安装的 GTK 库,需要如上面那样重新设置 PKG_CONFIG_PATH 和 LD_LIBRARY_PATH 环境变量.

  这种使用 GTK 的方法,在使用之前多了一个对库进行设置的过程.虽然显得稍微繁琐了一些,但却是一种最安全的使用 GTK 库的方式,不会对系统上已经存在的使用了 GTK 库的程序(比如 GNOME 桌面)带来任何冲击.

  为了使库的设置变得简单一些,可以把下面的这两句设置保存到一个文件中(比如 set_gtk-2.10 文件):

  export PKG_CONFIG_PATH=/opt/gtk/lib/pkgconfig:$PKG_CONFIG_PATHexport LD_LIBRARY_PATH=/opt/gtk/lib:$LD_LIBRARY_PATH之后,就可以用下面的方法进行库的设置了(其中的 source 命令也可以用 . 代替):

  $ source set_gtk-2.10

  只有在用新版的 GTK 库开发应用程序、或者运行使用了新版 GTK 库的程序的时候,才有必要进行上述设置.

  如果想避免使用 GTK 库之前上述设置的麻烦,可以把上面两个环境变量的设置在系统的配置文件中(如 /etc/profile)或者自己的用户配置文件中(如 ~/.bash_profile) ;库的搜索路径也可以设置在 /etc/ld.so.conf 文件中,等等.这种设置在系统启动时会生效,从而会导致使用 GTK 的程序使用新版的 GTK 运行库,这有可能会带来一些问题.当然,如果你发现用新版的 GTK 代替旧版没有什么问题的话,使用这种设置方式是比较方便的.加入到~/.bashrc中,例如:

  PKG_CONFIG_PATH=/opt/gtk/lib/pkgconfig

  重启之后:

  [root@localhost ~]# echo $PKG_CONFIG_PATH

  /opt/gtk/lib/pkgconfig

  pkg-config --list-all

  列出所有可使用的包,位置在/usr/lib/pkgconfig , /usr/local/lib/pkgconfig下面的libname.pc文件,新软件一般都会安装.pc文件,没有可以自己创建,并且设置环境变量 PKG_CONFIG_PATH寻找.pc文件路径.

Empire CMS,phome.net

  得到一些参数,例如

  #pkg-config --cflags libpcsclite

  -lpthread -I/usr/local/include/PCSC

  #pkg-config --libs libname

  -L/usr/local/lib -lpcsclite

  其他的config

  ls /usr/bin/*config

  二、运行时

  库文件在连接(静态库和共享库)和运行(仅限于使用共享库的程序)时被使用,其搜索路径是在系统中进行设置的.一般 Linux 系统把 /lib 和 /usr/lib 两个目录作为默认的库搜索路径,使用这两个目录中的库时不需

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号