目录
一、ubuntu开发环境下使用gcc编译c程序
1、gcc编译流程
编译流程 | 命令 | 作用 | 解释 |
预处理阶段 | gcc -E hello.c -o hello.i | 该过程会对各种预处理指令(以#开头的代码行,如#include,#define,#ifdef等等)进行处理,删除注释和多余的空白字符。 | E是参数,是通知gcc对hello.c进行预编译; o是参数,是对命令输出结果进行导入操作,这里是将gcc -E hello.c操作结果输出到文件hello.i(这里文件名可以自定义)进行保存 |
编译阶段 | gcc -s hello.i -o hello.s | 该过程会对代码进行语法、语义分析和错误判断,生成汇编代码文件。 | S是参数,用于通知gcc对目标文件hello.i进行编译。 |
汇编阶段 | gcc -c hello.s -o hello.o | 该过程会将汇编代码转化为计算机可识别的二进制文件。 | 对命令的解释:c是参数,用于通知gcc对文件hello.s进行指令转换操作。 |
链接阶段 | gcc hello.o -o hello | 该过程就是将多个.o文件合并成一个可执行文件(也就是二进制指令),类似windows下的.exe文件。 | 对命令的解释:hello就是我们最后能够直接运行的可执行文件。 |
2、实验过程
1、编写C程序
编写main.c程序
编写sub1.h程序
2、用gcc对c程序编译
用gcc命令编译
(1)命令:gcc main1.c sub1.h -o main1
采用多个文件一起编译,输出放在main1中。
gcc的常见用法:
-c 只生成目标文件不进行链接,用于对目标文件的分别编译
-o file 将输出放在文件file中
(2)命令: ./main1
进行运行程序main1
二、ubuntu开发环境下使用makefile编译c程序
1、makefile编译规则
目标文件:[相依文件]
<tab>命令[注释]
<tab>命令[注释]
...
2、实验内容
1、创建makefile文件
2、输入make命令进行调用并执行
三、用DEVC++编译主程序
四、总结
掌握了gcc和makefile在ubuntu开发环境下编译C程序的规则,命令。