《专题帖》
在运行动态库程序时,需要添加动态库路径。【警惕】
默认情况下,linux系统链接器,编译器只会使用/lib和/usr/lib这两个目录下的库文件,通常我们生成的.so库不在系统默认目录中,或者通过源码包进行安装时,在/usr/local/lib目录下等等。当运行程序需要链接动态库时,提示找不到相关的.so库,会报错。也就是说,在系统默认的库搜索目录中,找不到我们的.so文件。有以下三种方法解决办法:
1、修改/etc/ld.so.conf文件,sudo vi /etc/ld.so.conf 在"include ld.so.conf.d/*.conf"下方增加,指定动态库路径,如"/home/won/local/lib"。保存后,在命令行终端执行:/sbin/ldconfig -v;其作用是将文件/etc/ld.so.conf列出的路径下的库文件缓存到/etc/ld.so.cache以供使用
2、修改LD_LIBRARY_PATH环境变量,
export LD_LIBRARY_PATH=$(LD_LIBRARY_PATH)/home/won/nfs_share/lib_so_resps
如果只在命令行中简单设置,仅在该次登陆有效。可以在/home/won/ 用户根目录下,vi .bashrc 在文件末尾,粘贴上述指令,可在用户登陆后永久生效。
3、将so库文件拷贝到/lib /usr/lib目录下,直接有效。
建议:开发者推荐第2种办法,设置在bashrc文件中后,也很方便,不影响系统其他功能。如果so文件不在修改,也可采纳第3种办法。第1种方法适合软件的长期部署情况。