g77 - 編譯Fortran示範

[編程] 如何在 Windows 上安裝 GNU Fortran G77 編譯器

Fortran的全名是Formula Translation,是世界上第一個被正式採用並流傳至今的高級編程語言。顧名思義,Fortran是一款著重數值分析和計算的電腦語言,適合用於著重數學的編程上。

Fortran經過不同版本的改進,新版本的Fortran加入了面向對象編程(Object-oriented programming)和指針(Pointer)等現代語言常見的特性。如果要了解Fortran的演變和歷史,大家可以到「維基百科」或「Wikipedia」看一看。

G77簡介

G77是由Free Software Foundation (FSF)開發的Fortran編譯器,可以將Fortran 77代碼編譯。除了支援標準的Fortran 77編碼和語法外,還加入了一些常用的擴充,而這些擴充大都被納入Fortran 90的標準之中。雖然新版本的編譯器已經改稱GNU Fortran (GFortran),並且不再支援舊版本的G77,但是大家可以透過Fortran 77的編程,了解到30多年前未有OOP的代碼編碼技巧。

下載檔案

Windows版本的G77包含共有3個檔案︰

檔案: g77doc.zip
大小: 309253 bytes
MD5: 202872339BF74828CDAB788488B31D58
SHA1: B563A7E448A81D5BD2408E681B1598A18E8EC39F
說明: G77說明文件的存檔。

檔案: g77exe.zip
大小: 1612806 bytes
MD5: DA24F537E544038685DF49A6EED5B214
SHA1: C431F9B49753008BC7AC964AB689839214B6CEE9
說明: 編譯器 (Compiler),連結器 (Linker)和配套的可執行程式 (Ancillary Executables)。

檔案: g77lib.zip
大小: 213954 bytes
MD5: D2059D5B56AC4821A623D65B4EDF1635
SHA1: 7ED8D8BFE0897B7D4C22BD86CAFCE607C7B7D515
說明: 函式庫 (Libraries)。

如果沒有解壓縮軟件,請下載這個檔案︰

檔案: unzip.zip
大小: 119296 bytes
MD5: 7A9A6665A11D5E73B80B1C833ADCBEFE
SHA1: 0488024A43886281BEEB4FB727E72114AD96B468

解開 G77 編譯器 的壓縮檔案

  1. 在開始安裝前,請確保使用的Windows帳戶擁有系統管理員權限。要檢查當前用戶的權限,可「按此」查看教學。如果當前使用的帳戶沒有系統管理員權限,請聯絡您的系統管理員,或者「按此」查看啟用系統管理員 Administrator 帳戶的教學。
  2. 將「g77exe.zip」、「g77lib.zip」和「g77doc.zip」三個檔案解壓縮,建議解壓縮至「C:\」。如果您沒有解壓縮軟件,請將4個下載的檔案放在「C:\」內,然後以系統管理員身分執行「命令提示字元」,並一句句輸入以下指令︰
    ren unzip.zip unzip.exe
    unzip g77exe.zip
    unzip g77lib.zip
    unzip g77doc.zip

    g77 - 編譯器壓縮檔案

設定環境變數

  1. 按下「開始」,在「電腦」按下滑鼠右鍵,選擇「內容」。如果是Windows XP作業系統,則在「我的電腦」按下滑鼠右鍵,再選擇「內容」。
    內容
  2. 在左邊選單按下「進階系統設定」。如果是Windows XP,則跳過這步驟。
    進入進階系統設定
  3. 在上面的標籤選單中選擇「進階」,再按下「環境變數…」。
    進階
  4. 在「系統變數」中選擇變數「Path」,然後按「編輯…」。
    系統變數
  5. 在「變數值(V)」的最後加上G77的目錄內的bin資料夾路徑。例如︰「;C:\G77\bin」。路徑前要加上「分號(;)」。之後按下「確定」。
    g77 - 設定Path
  6. 點擊「新增(W)…」,變數名稱(N) 內填上「LIBRARY_PATH」,而變數值(V)內填上「C:\G77\lib」。之後重覆按下「確定」,直至所有頁面都關上。
    g77 - 設定Library Path

編譯器的使用方法

  1. 打開「命令提示字元」,移至需要編譯的Fortran檔案目錄,輸入
    g77 helloworld.for -o foolegg.exe

    當中,「helloworld.for」是源碼檔案,「foolegg.exe」是編譯後的可執行檔案(Binary file)。
    g77 - 編譯Fortran示範

  2. 點撃「foolegg.exe」就可以執行程式了。
  3. 以下是一些常用的編譯選項︰
    -c 產生目標檔案(Object file),並不執行連結器(Linker)。
    -Wall 顯示編譯時產生的警告訊息。
    -O 代碼最佳化。

Undefined Reference錯誤

  1. 筆者在第一次編譯時會出現以下錯誤訊息,只需要重新啟動系統一次錯誤訊息也就消失了。
    undefined reference to 's_wsle'
    undefined reference to `s_stop'