GCC编译C++程序的那些步骤,其中包括编译的时候include的搜索目录,链接的时候库的搜索目录(这里的库包含两种库)。还有一个时候,需要搜索路径,那就是装载动态库的时候,这个时候与GCC无关了。而是与linux系统自身有关系。
动态转载动态库,是为了基于动态库编译链接而来的可执行程序设定的一个程序执行过程中需要的功能,对于那些只基于静态库的可执行程序来说,这个功能没有什么用。
1)执行这个动作的linux程序: ld.so
2)这个程序参考的文件为:/etc/ld.so.conf,该文件保存着ld应该搜索的so文件路径。通常ld.so.conf.d这个文件夹下也保存着分文件,以供合成ld.so.conf
3)该程序实际参考的文件为:/etc/ld.so.cache.这个文件会其实基本上就是对/etc/ld.so.cache 做了稍微的处理利于/usr/bin/ld程序的参考。
4)将/etc/ld.so.conf 更新到/etc/ld.so.cache.的命令: ldconfig. 使用 ldconfig -p|less可以逐步查看从/usr/bin/ld 眼里的/etc/ld.so.cache的内容(路径)。
5)所以往/etc/ld.so.conf内做指定的路径,如/usr/lib等加入你需要程序搜索的动态库.so文件,不需要执行ldconfig更新。因为/etc/ld.so.cache中保存的就是目录,而不是具体的so文件。
6)向/etc/ld.so.conf添加路径。则需要调用ldconfig来更新/usr/bin/ld的搜索路径。
———————
作者:vigoto
来源:CSDN
原文:https://blog.csdn.net/vigoto/article/details/53421721
版权声明:本文为博主原创文章,转载请附上博文链接!
转载请注明:学时网 » linux 配置和加载动态库 ldconfig