在mac電腦的terminal里該如何運行c語言

  • 2020 年 3 月 27 日
  • 筆記

若要在 Mac 的終端中編譯並運行 C 源程式碼,你首先需要安裝 Command Line Tools,裡面包含有 GCC 編譯器。安裝方法為:

  1. 打開終端,輸入 gcc。
  2. 如果你沒有安裝 Command Line Tools,會彈出一個窗口提示你安裝,如圖所示,點擊安裝即可。如果出現提示「no input files」,說明你已經安裝了 gcc 編譯器,可以直接開始編譯程式。
  1. 安裝完成後,定位至你需要編譯的 C 源程式碼所在目錄,即使用 cd 命令,例如我現在在根目錄下,我的 C 程式碼位於 ~/Desktop/Self/C 文件夾中,我便可以在終端中輸入以下命令,來跳轉到我 C 程式碼的文件夾: 1 cd Desktop/Self/C 效果如圖:

如果覺得輸入文件夾地址比較繁瑣,還有一種簡單的方法,就是輸完 cd 後在 Finder 中找到你的文件夾,直接把它拖到終端里,系統會自動生成這個文件夾的地址。

  1. 定位完成後,就可以開始編譯了。例如,我要編譯的文件叫 dot.c,那麼就在終端中輸入 1 gcc -Wall -g -o dot dot.c 其中,-Wall 代表編譯器在編譯過程中會輸出警告資訊(Warning),比如有些變數你並沒有使用,指針指向的類型有誤,main 函數沒有返回整數值等。這類資訊雖然不是錯誤,不影響編譯,但是很可能是程式 bug 的源頭,也有助於你尋找程式碼中的錯誤,規範程式碼格式。所以建議每次編譯時都加上 -Wall 參數。 -g 代表編譯器會收集調試(debug)資訊,這樣如果你的程式運行出錯,就可以通過 gdb 或者 lldb 等工具進行逐行調試,方便找出錯誤原因。如果你不是百分之百確定你的程式毫無問題,建議加上 -g 參數。這樣 debug 的時候會方便很多。 -o 代表編譯器會將編譯完成後的可執行文件以你指定的名稱輸出到你指定的文件夾下。-o 的空格後的名稱就是輸出的文件的名稱。例如我這裡 -o 後是 dot,就是說 gcc 會在編譯成功後在我的當前目錄下生成一個叫 dot 的可執行文件。如果不加這個參數,每次編譯後生成的可執行文件都會放在根目錄下,名字叫做 a.out。每次編譯成功後都會把上一次的 a.out 文件覆蓋。所以建議加上 -o 參數,這樣可以更加條理。 最後一項便是你要編譯的的源程式碼的名稱了。我這裡是 dot.c。注意加上後綴 .c。
  2. 輸入完畢後按回車,如果編譯沒有任何問題,不會有任何提示。如果有問題,編譯器會提示你問題是什麼,在源程式碼的什麼位置。如圖所示:

如果編譯成功,你會發現在你的當前目錄下多出了一個可執行文件,圖標如圖所示:

  1. 在終端中輸入 ./可執行文件的名稱 即可執行你的程式。例如,我輸入 1 ./dot 後,就可以執行程式了。如果提示你 Permission Denied,則是因為你沒有賦予這個文件執行許可權,需要在終端里輸入 1 chmod u+x dot (這裡是你自己的文件名) 來使其可在你的賬戶下執行。
  2. 如果運行時出現 Segmentation Fault,則說明你的程式碼里有 bug 導致程式崩潰。