編譯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
發佈了50 篇原創文章 · 獲贊 5 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章