编译内核报错 (1)

1.报错信息如下

  HOSTCC  scripts/pnmtologo
  HOSTCC  scripts/conmakehash
  HOSTCC  scripts/sortextable
  HOSTCC  scripts/asn1_compiler
  HOSTCC  scripts/extract-cert
/tmp/ccjQu2Vk.o: In function `main':
extract-cert.c:(.text.startup+0x25): undefined reference to `OPENSSL_init_crypto'
extract-cert.c:(.text.startup+0x31): undefined reference to `OPENSSL_init_crypto'
collect2: error: ld returned 1 exit status
scripts/Makefile.host:90: recipe for target 'scripts/extract-cert' failed
make[1]: *** [scripts/extract-cert] Error 1
Makefile:1067: recipe for target 'scripts' failed
make: *** [scripts] Error 2

2.分析原因,由于打印信息分析是因为openssl的版本不匹配导致的问题
3.查看当前openssl版本
openssl version -a
可以看到版本信息和安装位置
显示如下

root@phytium:/lib/x86_64-linux-gnu# openssl version -a
OpenSSL 1.0.2g  1 Mar 2016
built on: reproducible build, date unspecified
platform: debian-amd64
options:  bn(64,64) rc4(16x,int) des(idx,cisc,16,int) blowfish(idx) 
compiler: cc -I. -I.. -I../include  -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -m64 -DL_ENDIAN -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wl,-Bsymbolic-functions -Wl,-z,relro -Wa,--noexecstack -Wall -DMD32_REG_T=int -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM
OPENSSLDIR: "/usr/lib/ssl"

4.openssl版本升级

    sudo rm /usr/bin/openssl
    wget https://www.openssl.org/source/openssl-1.1.0k.tar.gz
    tar -zxvf openssl-1.1.0k.tar.gz
    cd openssl-1.1.0k
    sudo ./config
    sudo make install 
    sudo ln -s /usr/local/bin/openssl /usr/bin/openssl

5.查看新版本信息
openssl version -a

OpenSSL 1.1.0k  28 May 2019
built on: reproducible build, date unspecified
platform: linux-x86_64
options:  bn(64,64) rc4(16x,int) des(int) idea(int) blowfish(ptr) 
compiler: gcc -DDSO_DLFCN -DHAVE_DLFCN_H -DNDEBUG -DOPENSSL_THREADS -DOPENSSL_NO_STATIC_ENGINE -DOPENSSL_PIC -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DRC4_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DPADLOCK_ASM -DPOLY1305_ASM -DOPENSSLDIR="\"/usr/local/ssl\"" -DENGINESDIR="\"/usr/local/lib/engines-1.1\""  -Wa,--noexecstack
OPENSSLDIR: "/usr/local/ssl"
ENGINESDIR: "/usr/local/lib/engines-1.1"

6.如果内核编译还是不成功的话,需要查看
cd /usr/lib/x86_64-linux-gnu/
目录下文件libcrypto.so libssl.so的软连接
原来我的虚拟机默认是如下

lrwxrwxrwx   1 root root        40 713  2021 libcrypto.so -> /lib/x86_64-linux-gnu/libcrypto.so.1.0.0
lrwxrwxrwx   1 root root        35 422  2021 libcrypt.so -> /lib/x86_64-linux-gnu/libcrypt.so.1

lrwxrwxrwx   1 root root        37 713  2021 libssl.so -> /lib/x86_64-linux-gnu/libssl.so.1.0.0

7.更新新的文件
cd penssl-1.1.0k`
将文件拷贝对应文件夹下,做好软连接

sudo cp -rf libcrypto.so.1.1 /lib/x86_64-linux-gnu/
sudo cp -rf libssl.so.1.1* /lib/x86_64-linux-gnu/

cd /usr/lib/x86_64-linux-gnu/

sudo ln -sf /lib/x86_64-linux-gnu/libssl.so.1.1 libssl.so
sudo ln -sf /lib/x86_64-linux-gnu/libcrypto.so.1.1 libcrypto.so

8.区别
原来的文件名字:
libssl.so.1.0.0
libcrypto.so.1.0.0
新文件名称:
libssl.so.1.1
libcrypto.so.1.1

操作到此可以 正常编译内核了

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值