编译SSH代码时,报错configure:error:*** working libcrypto not found,check config.log的原因分析及解决方案

在将ssh移植到龙芯1B核心板的过程中,当编译openssh-8.0p1工具时,出现了。

configure:error:*** working libcrypto not found,check config.log

的报错,根据提示,在openssh-8.0p1的文件夹根目录下,找到config.log文件,查看分析后发现,报错原因在于。

error adding symbols:Bad value

这一句错误反馈。
这是一个动态库和静态库使用的相关问题。
生成静态库或者动态库时,要添加 -fPIC ,这是创建库文件时所需要的,保证库文件编译后,在内存中的位置不是绝对位置,而是一个相对位置。
不使用此命令,编译出来的静态库,没有重定位能力,往往无法使用。
而在openssl-1.0.2r下编译出来的libcrypto.a是一个静态库,因此出现无法使用的情况。
-fPIC 全称是Position Independent Code,用于生成位置无关代码,代码无绝对跳转,都是相对跳转。
因此,在编译openssl的库文件时,需要添加-fPIC,如下

#./Configure --prefix=/mnt/more/loongson/sshwork/openssl-1.0.2r
  os/compiler:mipsel-linux-gcc -fPIC

你可能感兴趣的:(龙芯开发,ubuntu,SSH,SSL,libcrypto,-fPIC)