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
重裝之后問題解決