Linux 编译 没有path,Linux源代码编译软件及PKG_CONFIG_PATH、LD_LIBRARY_PATH、/etc/ld.so.conf、ldconfig...

Linux源码编译过程如下图所示:

e2504230cda5f2f7a9c01ea96f89a2c3.png

解释:

(1) ./configure通过*.pc文件检测主机信息。pkg-config程序,通过库提供的一个*.pc文件向./configure提供系统信息。默认情况下,*.pc文件存储在/usr/lib/pkgconfig/下,位于其他目录的*.pc文件将不会被./configure检测到,于是会出现明明安装了某软件包,还是提示版本不对等问题。可以通过PKG_CONFIG_PATH环境变量配置获取*.pc文件的路径。                                                                                                                                                                            问题:“为什么我已经安装了glib-2.4.x,但是编译gtk+-2.4.x 还是提示glib版本太低阿” ,将glib-2.x.x装到了/usr/local/下,那么glib-2.0.pc就会在/usr/local/lib/pkgconfig下,将这个路径添加到PKG_CONFIG_PATH下就可以啦。

(2) /etc/ld.so.conf & ldconfig & LD_LIBRARY_PATH,  /etc/ld.so.conf记录了编译时使用动态链接库的路径,默认情况下,编译器只会使用/lib、/usr/lib下的库。如果你安装了某些库,比如在安装gtk+-2.4.13时它会需要glib-2.0 >= 2.4.0,辛苦的安装好glib后没有指定 --prefix=/usr 这样glib库就装到了/usr/local下,而又没有在/etc/ld.so.conf中添加/usr/local/lib这个搜索路径,所以编译gtk+-2.4.13就会出错了,直接将/usr/local/lib添加到/etc/ld.so.conf中即可。如果不想修改/etc/ld.so.conf配置文件,可以通过LD_LIBRARY_PATH环境变量设置链接库的路径。    ldconfig有什么作用呢?ldconfig将ld.so.conf配置文件中的配置转换到ld.so.cache中,因为编译时查看ld.so.cache配置文件中是否存在相应的库,而不是查看ld.so.conf文件中,ldconfig可在任意目录下直接运行。位于sbin/ldconfig

ece7011489cd8b76148373c4e09a20c5.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值