ubuntu20.04下运行程序出现:
“error while loading shared libraries: libcrypto.so.1.0.0: cannot open shared object file: No such file or directory”
libcrypto.so.1.0.0是openssl的动态链接库,ubuntu20.04默认安装的版本高于1.0.0所致。
可以通过以下命令查看当前环境下安装的openssl的版本:
openssl version -a
手动编译安装openssl-1.0.0,将编译生成的libcrypto.so.1.0.0拷贝到/usr/lib目录即可。
1.下载openssl-1.0.0源码
从openssl网站下载指定的版本。
或者
执行以下命令直接获取:
wget https://www.openssl.org/source/openssl-1.0.0.tar.gz
2.编译
#解压
tar -vxzf openssl-1.0.0.tar.gzcd openssl-1.0.0
mkdir build#创建版本信息文件(内容在下一步),无此文件链接时会报找不到版本信息
vim openssl.ld
openssl.ld文件的内容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语法如下:
http://ftp.gnu.org/old-gnu/Manuals/ld-2.9.1/html_node/ld_25.html
2.3 编译
#配置
./config no-asm shared -Wl,--version-script=openssl.ld --prefix=./build#编译
make -j`nproc`
2.4 拷贝libcrypto.so.1.0.0到/usr/lib/目录下
编译完成后,libcrypto.so.1.0.0就在源码目录下。
sudo cp libcrypto.so.1.0.0 /usr/lib/
3.参考资料