41 pkg-config和gtk+

通常来说gcc在编译链接linux环境下的c语言代码时会在/lib和/usr/lib中去寻找对应的库文件,如果库文件没有这两个位置的时候则需要将库文件信息添加到库文件搜索路径中,可以通过如下两种方法来设置库文件的搜索路径:

1. 在环境变量 LD_LIBRARY_PATH 中指明库的搜索路径。    
2. 在 /etc/ld.so.conf 文件中添加库的搜索路径。

在gtk+的编译中会使用如下的编译参数`pkg-config --cflags --libs gtk+-2.0`,其中pkg-config是一个管理工具(库信息提取工具),用于向用户/程序提供相应的库路径、版本号等信息,其利用库提供者提供的.pc文件实现了如下几个功能:

1、检查库的版本号。如果所需要的库的版本不满足要求,它会打印出错误信息,避免链接错误版本的库文件。
2、获得编译预处理参数,如宏定义,头文件的位置。
3、获得链接参数,如库及依赖的其它库的位置,文件名及其它一些连接参数。
4、自动加入所依赖的其它库的设置。

其最主要的功能是当安装完库之后用户可以不管这个库的所有位置而直接使用相同的命令进行编译,pkg-config工具会自行去找到库的所在。

gtk+的编译的参数--cflags用于给出编译时的选项,而-libs用于给出链接时的选项

.pc文件保存位置在usr/lib/pkgconfig下

alloy@ubuntu:/usr/lib/pkgconfig$ ls
camel-1.2.pc                  gmime-2.6.pc                            libedataserver-1.2.pc     mozjs185.pc
camel-provider-1.2.pc         gnome-bluetooth-1.0.pc                  libedataserverui-3.0.pc   mutter-plugins.pc
clutter-gtk-1.0.pc            gnome-desktop-3.0.pc                    libgdiplus.pc             nautilus-sendto.pc
dbus-python.pc                gobject-introspection-1.0.pc            libgnomekbd.pc            notify-python.pc
enchant.pc                    gobject-introspection-no-export-1.0.pc  libgnomekbdui.pc          pm-utils.pc
evince-document-3.0.pc        gtk-dotnet-2.0.pc                       libgnome-menu-3.0.pc      pygobject-2.0.pc
evince-view-3.0.pc            gtkmm-3.0.pc                            libgtkhtml-4.0.pc         pygobject-3.0.pc
evolution-data-server-1.2.pc  gtk-sharp-2.0.pc                        libgtop-2.0.pc            python-2.7.pc
fontutil.pc                   gucharmap-2.90.pc                       libical.pc                python2.pc
gck-1.pc                      gweather-3.0.pc                         libmutter.pc              python.pc
gcr-3.pc                      ibus-table.pc                           libnautilus-extension.pc  telepathy-farstream.pc
gdkmm-3.0.pc                  libbrasero-burn3.pc                     libnm-util.pc             telepathy-glib.pc
ginn.pc                       libbrasero-media3.pc                    libpanelapplet-4.0.pc     totem-plparser-mini.pc
gjs-1.0.pc                    libebackend-1.2.pc                      libpeas-1.0.pc            totem-plparser.pc
gjs-dbus-1.0.pc               libebook-1.2.pc                         libpeas-gtk-1.0.pc        vte-2.90.pc
gjs-internals-1.0.pc          libecal-1.2.pc                          libquvi-scripts.pc        xorg-wacom.pc
gladeui-2.0.pc                libedata-book-1.2.pc                    libwnck-3.0.pc            xres.pc
glib-sharp-2.0.pc             libedata-cal-1.2.pc                     libxklavier.pc

alloy@ubuntu:/usr/lib/pkgconfig$ pkg-config --cflags glib-2.0
-I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值