今天在搭建x86 64位编译环境的时候,把文件解压放到了/opt目录下,并且在/etc/ld.so.conf.d目录下添加了x86-gcc.conf文件(该文件中只有一句,指向/opt目录下解压目录中的lib目录),可是在执行编译命令行的时候却提示找不到so共享库,在对于的目录下搜了一下,这些库是的的确确的存在的。后来才知道需要执行一下ldconfig。
可是ldconfig究竟干了些什么事呢?
使用man ldconfig查看描述,ldconfig其实就是用/lib、/usr/lib和/etc/ld.so.conf文件中指定的目录下的所有的so生产link and cache(实际上这个cache指的就是/etc/ld.so.cache文件)。运行时的linker(ld.so or ld-linux.so)会使用cache,这样就可以找到我们需要的库了。
因此,以后要使用新的so库,即使把这些so放到了/lib或者/usr/lib目录下,不要忘记ldconfig。