/etc/ld.so.conf

引用:https://www.cnblogs.com/chris-cp/p/3591306.html
/etc/ld.so.conf 此文件记录了编译时使用的动态库的路径,也就是加载so库的路径。(实际引用的是/etc/ld.so.conf.d/ 目录下所有以.conf结尾的文件)

[root@dewan01 bin]# cat /etc/ld.so.conf
include ld.so.conf.d/*.conf  

默认情况下,编译器只会使用/lib/usr/lib这两个目录下的库文件,而通常通过源码包进行安装时,如果不指定--prefix,会将库安装在/usr/local目录下,而又没有在文件/etc/ld.so.conf中添加/usr/local/lib这个目录。这样虽然安装了源码包,但是使用时仍然找不到相关的.so库,就会报错。也就是说系统不知道安装了源码包。
对于此种情况有2种解决办法:
1.在用源码安装时,用--prefix指定安装路径为/usr/lib。这样的话也就不用配置PKG_CONFIG_PATH
2.直接将路径/usr/local/lib路径加入到文件/etc/ld.so.conf文件的中。在文件/etc/ld.so.conf中末尾直接添加:/usr/local/lib。

ldconfig
再来看看ldconfig这个程序,位于/sbin下,它的作用是将文件/etc/ld.so.conf列出的路径下的库文件缓存到/etc/ld.so.cache以供使用,因此当安装完一些库文件,或者修改/etc/ld.so.conf增加了库的新的搜索路径,需要运行一下ldconfig,使所有的库文件都被缓存到文件/etc/ld.so.cache中,如果没做,可能会找不到刚安装的库。

pkg-config

pkg-config - Return metainformation about installed libraries
The pkg-config program is used to retrieve information about installed libraries in the system. It is typically used to compile and link against one or more libraries.

[root@dewan01 bin]# ll /usr/lib/pkgconfig
total 48
-rw-r--r-- 1 root root 234 Apr  1 11:16 gssrpc.pc
-rw-r--r-- 1 root root 255 Apr  1 11:16 kadm-client.pc
-rw-r--r-- 1 root root 251 Apr  1 11:16 kadm-server.pc
-rw-r--r-- 1 root root 286 Apr  1 11:16 kdb.pc
-rw-r--r-- 1 root root 192 Apr  1 11:16 krb5-gssapi.pc
-rw-r--r-- 1 root root 322 Apr  1 11:16 krb5.pc
-rw-r--r-- 1 root root 293 Aug  9  2019 libcrypto.pc
-rw-r--r-- 1 root root 345 Aug  9  2019 libssl.pc
-rw-r--r-- 1 root root 242 Apr  1 11:16 mit-krb5-gssapi.pc
-rw-r--r-- 1 root root 394 Apr  1 11:16 mit-krb5.pc
-rw-r--r-- 1 root root 218 Aug  9  2019 openssl.pc
-rw-r--r-- 1 root root 237 Oct 31  2018 zlib.pc

[root@dewan01 bin]# cat /usr/lib/pkgconfig/kdb.pc
prefix=/usr
exec_prefix=/usr
libdir=/usr/lib
includedir=/usr/include

KDB5_DB_LIB=

Name: kdb
Description: Kerberos database access libraries
Version: 1.15.1
Requires.private: mit-krb5-gssapi mit-krb5 gssrpc
Cflags: -I${includedir}
Libs: -L${libdir} -lkdb5
Libs.private: ${KDB5_DB_LIB}

configure

‘configure’脚本有大量的命令行选项。bai对不同的软件包来du说,这些选项可能会有变化zhi,但是许多基本的选项是不会改变的。带上’–help’选项执行’configure’脚本可以看到可用的所有选项。尽管许多选项是很少用到的,但是当你为了特殊的需求而configure一个包时,知道他们的存在是很有益处的。

./configure的作用是检测系统配置,生成makefile文件,以便你可以用make和make install来编译和安装程序。

执行./configure的话要到你解压好的目录中去(cd 程序文件夹名称)。

ldd
判断某条命令需要哪些共享库文件的支持。

[root@dewan01 ~]# which ls
alias ls='ls --color=auto'
        /usr/bin/ls
Mon Jun 15 23:21:14 CST 2020
[root@dewan01 ~]# ldd /usr/bin/ls
        linux-vdso.so.1 =>  (0x00007fff5f39f000)
        libselinux.so.1 => /lib64/libselinux.so.1 (0x00007fa34728e000)
        libcap.so.2 => /lib64/libcap.so.2 (0x00007fa347089000)
        libacl.so.1 => /lib64/libacl.so.1 (0x00007fa346e80000)
        libc.so.6 => /lib64/libc.so.6 (0x00007fa346ab2000)
        libpcre.so.1 => /lib64/libpcre.so.1 (0x00007fa346850000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007fa34664c000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fa3474b5000)
        libattr.so.1 => /lib64/libattr.so.1 (0x00007fa346447000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fa34622b000)

你可能感兴趣的:(学习分享)