解決/usr/bin/ld: cannot find -lgfortran報錯


Linux編譯安裝OpenBLAS的時候報/usr/bin/ld: cannot find -lgfortran的錯誤,會發生這種情況的原因一般有下面三種原因:

  系統沒有安裝相對應的lib

 相對應的lib版本不對

 lib的symbolic link不對,沒有連接到正確的函式庫文件

 

因為報的是lgfortran,根據問題1,先用

locate libgfortran.so

查看系統有沒有這個so文件,查找發現是有的,在gcc4.8.5的目錄下,排除第一種可能。

 

 然后使用

gcc -lgfortran --verbose

查看庫文件是否在搜索路徑中找到,這一步的時候報錯了。到現在這一步基本已經能夠知道錯誤原因了,因為之前編譯安裝別的軟件要求gcc版本較高,所以系統gcc版本從4.8.5升級到了gcc7.3.0,懷疑是版本問題。

 
分別執行
gcc --version
g++ --version
gfortran --version
發現前面兩個都是7.3.0,只有gfortran是4.8.5,所以讓他們版本一致即可,使用的解決辦法是重裝gcc。
 
yum install gcc-gfortran
 
  第一遍更新安裝gcc使用的參數為:
  ../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib --prefix=/usr
 
  重裝參數為:
  ../configure --enable-checking=release --enable-languages=c,c++,fortran --disable-multilib --prefix=/usr
 
  重裝之后問題解決


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM