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


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

    1.   系統沒有安裝相對應的lib
    2.  相對應的lib版本不對
    3.  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。
 
  第一遍更新安裝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