「C」Mac系统下编译c文件生成可执行程序

编译环境:macOS 10.12.2
编译工具:Sublime + gcc.
例如有如下文件echo_eof.c:

#include
/* echo_eof.c -- 重复输入,直到文件结尾 */
int main(void){
    int ch;

    while((ch=getchar())!=EOF){
        putchar(ch);
    }
    return 0;
}

编译方法:
cd到当前目录,执行:

$ gcc -Wall -g echo_eof.c
$ ./a.out

-Wall 代表编译器在编译过程中会输出警告信息(Warning),这类信息虽然不是错误,不影响编译,但是很可能是程序 bug 的源头,也有助于你寻找代码中的错误,规范代码格式。建议每次编译时都加上 -Wall 参数。

-g 代表编译器会收集调试(debug)信息,这样如果你的程序运行出错,就可以通过 gdb 或者 lldb 等工具进行逐行调试,方便找出错误原因。如果你不是百分之百确定你的程序毫无问题,建议加上 -g 参数。这样 debug 的时候会方便很多。

以上就是编译过程。
如何将编译后的文件生成可执行文件,方法如下:

gcc -o echo_eof echo_eof.c (其中不带.c后缀的 echo_eof就是你要生成的可执行文件名)

-o 代表编译器会将编译完成后的可执行文件以你指定的名称输出到你指定的文件夹下,-o 的空格后的名称就是输出的文件的名称。例如我这里 -o 后是 echo_eof,就是说 gcc 会在编译成功后在我的当前目录下生成一个叫 echo_eof 的可执行文件。如果不加这个参数,每次编译后生成的可执行文件都会放在根目录下,名字叫做 a.out。每次编译成功后都会把上一次的 a.out 文件覆盖。

因此,如果想编译和生成运行目标文件一步到位的话,直接执行:

gcc -Wall -g -o echo_eof echo_eof.c 

生成的目标文件如何运行呢,很简单 把上面的./a.out中a.out替换成你的目标文件即可,也就是:

./echo_eof  (如果需要参数,后面空格跟参数)

--------------------------------------华丽丽的分割线-------------------------------------
另外就是可以基于sublime text3 来直接配置,实现编译,运行:
首先 需要安装gcc,具体安装步骤,自行百度。
安装后在命令行输入 gcc -v 查看下版本号验证是否成功。
配置
1.打开 Sublime Tools->Build System -> New Build System
2.粘贴下面json到 覆盖原有内容,文件名自定义,但是后缀不要改变, 保存

{
    "cmd": ["g++", "${file}", "-o", "${file_path}/${file_base_name}"],
    "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
    "working_dir": "${file_path}",
    "selector": "source.c, source.c++",
 
    "variants":
    [
        {
            "name": "Run",
            "cmd": ["bash", "-c", "g++ '${file}' -o '${file_path}/${file_base_name}' && open -a Terminal.app '${file_path}/${file_base_name}'"]
        }
    ]
}
「C」Mac系统下编译c文件生成可执行程序_第1张图片
image.png

一定要默认路径user下即可,其他无效哦。
3.保存后,记得关闭退出sublime text3 ,然后切换到你刚刚创建的配置下:


「C」Mac系统下编译c文件生成可执行程序_第2张图片
image.png

就OK了。
3.快捷键 command+b 是编译 command+shift+b 选择Run 或者 BuildAndRun

你可能感兴趣的:(「C」Mac系统下编译c文件生成可执行程序)