当在 Linux 系统上运行一个程序时,如果弹出错误提示 error while loading shared libraries xx.so
,会导致程序无法正常运行。这种错误一般是因为程序所依赖的共享库没有找到或者路径不正确。
针对这种错误,我们可以采用以下方法解决:
方法一:修改动态库搜索路径
修改动态库搜索路径的方法比较常见。可以在环境变量 LD_LIBRARY_PATH
中添加程序所依赖的库所在路径,然后重新运行程序即可。
export LD_LIBRARY_PATH=/path/to/xx.so
./your_program
这里需要将环境变量 LD_LIBRARY_PATH
的值设置为程序所依赖的共享库路径,其中 /path/to/xx.so
是共享库的路径,./your_program
是要运行的程序的路径。
方法二:创建软链接
如果出现共享库版本不兼容的情况,可以通过创建软链接来解决问题。假设我们在运行程序时出现 error while loading shared libraries libssl.so.1.0.0
的错误,而系统中只有 libssl.so.1.1.0
的版本。那么可以通过创建软链接来解决:
ln -s /usr/lib64/libssl.so.1.1.0 /usr/lib64/libssl.so.1.0.0
这里需要使用 ln -s
命令创建一个 libssl.so.1.0.0
的软链接,指向系统中已有的 libssl.so.1.1.0
版本。这样程序就可以正常运行了。
示例一
假设我们在编译一个程序时,出现如下错误提示:
/usr/bin/ld: cannot find -lboost_python27
这个错误提示表示链接器找不到共享库 libboost_python27.so
。可以通过修改动态库搜索路径的方法解决:
export LD_LIBRARY_PATH=/path/to/boost_python27.so
make
这里需要将环境变量 LD_LIBRARY_PATH
的值设置为 libboost_python27.so
的路径,然后重新执行 make
命令即可。
示例二
假设我们在运行一个程序时,出现如下错误提示:
error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
这个错误提示表示链接器找不到共享库 libstdc++.so.6
。可以通过创建软链接的方法解决:
ln -s /usr/lib64/libstdc++.so.6.0.27 /usr/lib64/libstdc++.so.6
这里使用 ln -s
命令创建一个 libstdc++.so.6
的软链接,指向系统中已有的 libstdc++.so.6.0.27
版本。这样程序就可以正常运行了。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:error while loading shared libraries xx.so处理方法 - Python技术站