簡體   English   中英

升級到OSX Yosemite后為什么我不能用gfortran編譯? gfortran錯誤:libgfortran.spec:沒有這樣的文件或目錄

[英]Why can't I compile with gfortran after upgrading to OSX Yosemite? gfortran error: libgfortran.spec: No such file or directory

自升級到優勝美地后,我無法使用gfortran進行編譯。 最初我得到“分段錯誤11”,然后我:

  1. 已從http://hpc.sourceforge.net/更新為gcc v.5.0
  2. 重新安裝Xcode命令行實用程序v.6.1.1

完成上述操作后,我能夠編譯非常簡單的fortran程序,但是我運行的代碼越復雜,就會出現以下錯誤:

 gfortran: error: libgfortran.spec: No such file or directory

但實際上,libgfortran.spec文件位於/ usr / local / lib中

 ls /usr/local/lib | grep gfortran

 libgfortran.3.dylib
 libgfortran.a
 libgfortran.dylib
 libgfortran.la
 libgfortran.spec

所有gcc二進制文件都位於/ usr / local / bin中

 which gfortran

 /usr/local/bin/gfortran

我的道路似乎沒問題

 echo $PATH
 /usr/local/lib:/usr/local/bin:/usr/local:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/lib:/usr/texbin:/Users/MattCooper/bin:/Applications/MRT/bin

我也試過用自制軟件重新安裝gcc:

 brew install gcc
 Error: gcc-4.9.2 already installed
 To install this version, first 'brew unlink gcc'

但是,當我問'gcc --version'時,我得到v.5.0:

 gcc --version
 gcc (GCC) 5.0.0 20141005 (experimental)

當我嘗試取消鏈接或使用自制程序升級gcc時,我收到一個權限被拒絕錯誤:

 brew unlink gcc
 Unlinking /usr/local/Cellar/gcc/4.9.2... Error: Permission denied - /usr/local/bin/c++-4.9

同樣

 brew upgrade gcc
 Permission denied - /usr/local/bin/c++-4.9

最后

 which gcc
 /usr/local/bin/gcc

請幫忙。 非常感謝提前。 請讓我知道我忘記包含的內容。

我最終通過自制軟件解決了這個問題。 我無法確定問題的確切來源,但這與我從http://hpc.sourceforge.net/安裝gcc v4.9的事實有關,然后我重新安裝和/或更新的方式gcc與自制軟件。 然后,升級到優勝美地后,我從http://hpc.sourceforge.net/安裝了gcc v5。 在該進程中的某個位置,/ usr / local / bin和usr / local / lib中的二進制文件未正確鏈接。

主要線索是嘗試運行'brew upgrade gcc'時出現Permission Denied錯誤。 我在這里找到了一個解決方案: Brew醫生說:“警告:/ usr / local / include不可寫。”

要解決,我用過:

 brew doctor

它返回了一堆不可寫的目錄,例如usr / local / lib,因此brew無法將gcc升級到v5.0並鏈接所有內容。

我經歷並發布:

 sudo chown -R $USER /usr/local

並為'brew doctor'返回的所有其他不可寫目錄執行此操作。 然后,我能夠使用brew來升級gcc:

 brew upgrade gcc

在ugrade期間,自制軟件返回了一個錯誤,表明它無法完成升級,因為已經有一個現有的gfortran文件位於:

 /usr/local/bin/gfortran

要修復,自制軟件建議我運行:

 brew -link gcc

一切都行之有效。 有趣的(對我而言,因為我並不完全理解所有這一切)當我要求brew清理時,我得到:

 brew cleanup
 Warning: Skipping (old) /usr/local/Cellar/gcc/4.9.2 due to it being linked

這里有一些類似的信息: 如何使用brew鏈接到新的gcc版本?

與那個用戶類似,當我看到我的酒窖時,我發現兩個版本的gcc,但我不確定我是否需要兩個版本

 ls /usr/local/Cellar/gcc
 4.9.2 4.9.2_1

我遇到了類似問題的類似問題。 它無法找到此文件:

gfortran: error: libgfortran.spec: No such file or directory

所以我的問題是我通過hpc.sourceforge.net和homebrew安裝了gcc。 我不得不卸載自制程序版本

brew uninstall gcc

然后我不得不從hpc.sourceforge.net重新安裝gcc

sudo tar -xvf gcc-4.9-bin.tar.gz -C /

當我想使用Yosemite從hpc.sourceforge.net恢復為gcc 4.9時,這對我有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM