原文:https://www.cnblogs.com/cap-rq/p/10767713.html
在Mac終端中編譯並運行C源代碼,首先需要安裝 Command Line Tools ,里面包含有 GCC 編譯器。
安裝方法為:
- 打開終端,輸入 gcc ;
- 如果出現這個提示 clang: error: no input files ,說明已安裝gcc編譯器,可以直接開始編譯程序;
- 如果沒有安裝 Command Line Tools ,會彈出一個窗口提示安裝,如圖所示,點擊安裝即可。
安裝完成后,定位至你需要編譯的C源代碼所在目錄,cd至此目錄下面;然后開始編譯 .c 文件,在終端中輸入
gcc -Wall -g -o hello hello.c
其中, -Wall 代表編譯器在編譯過程中會輸出警告信息(Warning),比如有些變量你並沒有使用,指針指向的類型有誤, main 函數沒有返回整數值等。這類信息雖然不是錯誤,不影響編譯,但是很可能是程序 bug 的源頭,也有助於你尋找代碼中的錯誤,規范代碼格式。所以建議每次編譯時都加上 -Wall 參數。
-g 代表編譯器會收集調試(debug)信息,這樣如果你的程序運行出錯,就可以通過 gdb 或者 lldb 等工具進行逐行調試,方便找出錯誤原因。如果你不是百分之百確定你的程序毫無問題,建議加上 -g 參數。這樣 debug 的時候會方便很多。
-o 代表編譯器會將編譯完成后的可執行文件以你指定的名稱輸出到你指定的文件夾下。 -o 的空格后的名稱就是輸出的文件的名稱。例如我這里 -o 后是 hello ,就是說 gcc 會在編譯成功后在我的當前目錄下生成一個叫 hello 的可執行文件。如果不加這個參數,每次編譯后生成的可執行文件都會放在根目錄下,名字叫做 a.out 。每次編譯成功后都會把上一次的 a.out 文件覆蓋。所以建議加上 -o 參數,這樣可以更加條理。
最后一項便是你要編譯的的源代碼的名稱了。我這里是 hello.c 。注意加上后綴 .c 。
輸入完畢后按回車,如果編譯沒有任何問題,不會有任何提示。如果有問題,編譯器會提示你問題是什么,在源代碼的什么位置。如圖所示:
如果編譯成功,你會發現在你的當前目錄下多出一個可執行文件,如圖所示:
在終端中輸入 ./hello 即可執行你的程序,例如:
如果運行時出現 Segmentation Fault,則說明你的代碼里有 bug 導致程序崩潰。