一、问题
openssl库是一个安全库,包含摘要、加密等算法的实现,许多程序都会依赖它,但是当程序迁移时(编译和运行环境不一样时),就会报出类似的错误:error while loading shared libraries: libcrypto.so.1.0.0: cannot open shared object file: No such file or directory,这是一个很恶心的问题。
二、解决办法
解决办法有很多,将openssl库编译成静态库被程序所依赖就是一种方法,这样程序链接时会从静态库中找到要依赖的openssl。
三、操作
3.1 源码下载、解压
下载openssl源码,官网:https://www.openssl.org/ ; 下载地址:https://www.openssl.org/source/
下载自己需要的版本,一般来说下载最新的稳定版,更加安全。
解压 tar -zxvf openssl-1.1.0j.tar.gz
3.2 配置和编译
cd openssl-1.1.0j //切换目录
.
/config
-fPIC no-shared //配置静态编译
make //编译
ls *.a //查看生成的库文件,可以看