全部博文(89)
分类: LINUX
2009-01-20 11:07:32
########################
#
# /etc/ld.so.conf
#
########################
这个文件记录了编译时使用的动态链接库的路径。
默认情况下,编译器只会使用/lib和/usr/lib这两个目录下的库文件。
如在/usr/local/下安装的软件,默认库会安装在/usr/local/lib下。
故,需要把/usr/local/lib加入到动态链接库路径/etc/ld.so.conf。
vim /etc/ld.so.conf
-----------------------------------
/lib
/usr/lib
/usr/local/lib
/usr/X116/lib
-----------------------------------
########################
#
# /sbin/ldconfig
#
########################
它是一个程序,通常它位于/sbin下,它的作用就是将/etc/ld.so.conf列出的路径下的库文件 缓存到/etc/ld.so.cache 以供使用。
当安装完一些库文件,(例如刚安装好glib),或者修改ld.so.conf增加新的库路径后,需要运行一下/sbin/ldconfig
使所有的库文件都被缓存到ld.so.cache中。
########################
#
# PKG_CONFIG_PATH
#
########################
pkg-config就是向configure程序提供系统信息的程序,比如软件的版本啦,库的版本啦,库的路径。
这些信息只是在编译其间使用。你可以 ls /usr/lib/pkgconfig 下,会看到许多的*.pc,用文本编辑器打开
会发现类似下面的信息:
ls /usr/lib/pkgconfig
--------------------------------------------------
prefix=/usr
exec_prefix=$
libdir=$/lib
includedir=$/include
glib_genmarshal=glib-genmarshal
gobject_query=gobject-query
glib_mkenums=glib-mkenums
Name: GLib
Description: C Utility Library
Version: 2.4.7
Libs: -L$ -lglib-2.0
Cflags: -I$/glib-2.0 -I$/glib-2.0/include
--------------------------------------------------
如果遇到configure所预测的软件版本不对的情况,是因为在默认的/usr/lib/pkgconfig下和/usr/local/lib/pkgconfig下都有了此软件文件,
但会先运行默认的/usr/lib/pkgconfig,故把此目录下的软件文件删除即可。
configure就是靠这些信息判断你的软件版本是否符合要求。并且得到这些东东所在的位置设定好后可以加入到~/.bashrc中,例如:
PKG_CONFIG_PATH=/opt/kde-3.3.0/lib/pkgconfig:/usr/lib/pkgconfig:/usr/local/pkgconfig:/usr/X11R6/lib/pkgconfig
echo $PKG_CONFIG_PATH
/opt/kde-3.3.0/lib/pkgconfig:/usr/lib/pkgconfig:/usr/local/pkgconfig:/usr/X11R6/lib/pkgconfig