若要在 Mac 的終端中編譯並運行 C 源代碼,你首先需要安裝 Command Line Tools,里面包含有 GCC 編譯器。安裝方法為:
-
打開終端,輸入 gcc。
-
如果你沒有安裝 Command Line Tools,會彈出一個窗口提示你安裝,如圖所示,點擊安裝即可。如果出現提示“no input files”,說明你已經安裝了 gcc 編譯器,可以直接開始編譯程序。
-
安裝完成后,定位至你需要編譯的 C 源代碼所在目錄,即使用 cd 命令,例如我現在在根目錄下,我的 C 代碼位於 ~/Desktop/Self/C 文件夾中,我便可以在終端中輸入以下命令,來跳轉到我 C 代碼的文件夾:
1cd
Desktop
/Self/C
效果如圖:
如果覺得輸入文件夾地址比較繁瑣,還有一種簡單的方法,就是輸完 cd 后在 Finder 中找到你的文件夾,直接把它拖到終端里,系統會自動生成這個文件夾的地址。
-
定位完成后,就可以開始編譯了。例如,我要編譯的文件叫 dot.c,那么就在終端中輸入
1gcc -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。
-
輸入完畢后按回車,如果編譯沒有任何問題,不會有任何提示。如果有問題,編譯器會提示你問題是什么,在源代碼的什么位置。如圖所示:
如果編譯成功,你會發現在你的當前目錄下多出了一個可執行文件,圖標如圖所示:
-
在終端中輸入 ./可執行文件的名稱 即可執行你的程序。例如,我輸入
1.
/dot
后,就可以執行程序了。如果提示你 Permission Denied,則是因為你沒有賦予這個文件執行權限,需要在終端里輸入
1chmod
u+x dot (這里是你自己的文件名)
-
如果運行時出現 Segmentation Fault,則說明你的代碼里有 bug 導致程序崩潰。
原文鏈接:https://zhidao.baidu.com/question/496563760717502324.html