原文: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 导致程序崩溃。