0
点赞
收藏
分享

微信扫一扫

【OpenWrt】【编译】报错zlib

小a草 2022-04-01 阅读 76

【编译】【OpenWrt】报错zlib

文章目录

问题现象

编译时报错日志:

openssl:Error: 'zlib' is an invalid command.

需要更新openssl以支持zlib特性。

解决方法

下载编译

  1. 下载最新的openssl版本:https://www.openssl.org/source/

    例如笔者这里是:1.1.1n,故:

    $ wget https://www.openssl.org/source/openssl-1.1.1n.tar.gz
    

    建议手动下载,毕竟笔者写文章的时候,到你看到这篇文章,可能openssl更新了多个版本了。

  2. 解压

    $ tar -zxvf openssl-1.1.1n.tar.gz
    
  3. 编译安装

    $ cd openssl-1.1.1n
    $ ./config zlib
    $ make
    $ make install
    

    重新编译,仍然报错:

$ make PRODUCT_NAME=axe300v1 firmware V=s > /tmp/4.txt
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库。

更新可执行文件和库文件

  1. 备份原有openssl:

    $ sudo mv /usr/bin/openssl /usr/bin/openssl.bak
    $ sudo mv /usr/include/openssl /usr/include/openssl.bak
    
  2. 链接到新的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/
    
  3. 使能动态库配置

    $ sudo echo "/usr/local/lib64/" >> /etc/ld.so.conf
    $ sudo ldconfig
    
  4. 检查版本:

    $ openssl version -a
    

至此,编译正常。

举报

相关推荐

0 条评论