【编译】【OpenWrt】报错zlib
问题现象
编译时报错日志:
openssl:Error: 'zlib' is an invalid command.
需要更新openssl以支持zlib特性。
解决方法
下载编译
-
下载最新的openssl版本:https://www.openssl.org/source/
例如笔者这里是:1.1.1n,故:
$ wget https://www.openssl.org/source/openssl-1.1.1n.tar.gz
建议手动下载,毕竟笔者写文章的时候,到你看到这篇文章,可能openssl更新了多个版本了。
-
解压
$ tar -zxvf openssl-1.1.1n.tar.gz
-
编译安装
$ cd openssl-1.1.1n $ ./config zlib $ make $ make install
重新编译,仍然报错:
opensslopenssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
make: *** [firmware] Error 127
这里是因为openssl并没有正确的被替换,或者说现在系统的openssl版本库位置不对,并没有调用新的openssl库。
更新可执行文件和库文件
-
备份原有openssl:
$ sudo mv /usr/bin/openssl /usr/bin/openssl.bak $ sudo mv /usr/include/openssl /usr/include/openssl.bak
-
链接到新的openssl库(笔者这里安装路径是/usr/local/,链接到系统lib路径/usr/)
$ sudo ln -s /usr/local/lib/libssl.so.1.1 /usr/lib/libssl.so.1.1 $ sudo ln -s /usr/local/bin/openssl /usr/bin/
-
使能动态库配置
$ sudo echo "/usr/local/lib64/" >> /etc/ld.so.conf $ sudo ldconfig
-
检查版本:
$ openssl version -a
至此,编译正常。