error: dereferencing pointer to incomplete type 'RSA {aka struct rsa_st}'

编译OpenWRT 15.05(Chaos Calmer)的模块 tools/mkimage(u-boot-2014.10) 的时候碰到了下面的错误信息:

u-boot-2014.10/lib/rsa/rsa-sign.c:279:21: error: dereferencing pointer to incomplete type 'RSA {aka struct rsa_st}'
  if (BN_num_bits(key->e) > 64)
                     ^~
原因
编译Server的OpenSSL版本是1.1x,OpenSSL 1.1.x对一些API做了改动,因此出现错误信息。
$ openssl version
OpenSSL 1.1.0g  2 Nov 2017
解决方法
参考 https://github.com/openwrt/openwrt/commit/70b104f98c0657323b28fce140b73a94bf3eb756
加入patch - 210-openssl-1.1.x-compat.patch

你可能感兴趣的:(error: dereferencing pointer to incomplete type 'RSA {aka struct rsa_st}')