问题
ubuntu20.04下运行程序出现:
“error while loading shared libraries: .1.0.0: cannot open shared object file: No such file or directory”
原因
.1.0.0是openssl
的动态链接库,ubuntu20.04默认安装的版本高于1.0.0所致。
可以通过以下命令查看当前环境下安装的openssl的版本:
openssl version -a
解决办法
手动编译安装openssl-1.0.0,将编译生成的.1.0.0拷贝到/usr/lib
目录即可。
-
1.下载openssl-1.0.0源码
从openssl网站下载指定的版本。
或者
执行以下命令直接获取:wget /source/openssl-1.0.
-
2.编译
- 2.1 准备工作
#解压 tar -vxzf openssl-1.0. cd openssl-1.0.0 mkdir build #创建版本信息文件(内容在下一步),无此文件链接时会报找不到版本信息 vim
- 2.2
文件的内容
OPENSSL_1.0.0 { global: *; }; OPENSSL_1.0.1 { new*; }OPENSSL_1.0.0; OPENSSL_1.0.1p { new*; }OPENSSL_1.0.0;
附:–version-script语法如下:
/old-gnu/Manuals/ld-2.9.1/html_node/ld_25.html -
2.3 编译
#配置 ./config no-asm shared -Wl,--version-script= --prefix=./build #编译 make -j`nproc`
-
2.4 拷贝.1.0.0到
/usr/lib/
目录下
编译完成后,.1.0.0就在源码目录下。sudo cp .1.0.0 /usr/lib/
-
3.参考资料
- 1..1.0.0编译
- 2..1.0.0: no version information available