Linux内核|实验二 gcc与make使用

实验任务
(1) 会用gcc
(2) 为自己的工程编写makefile文件
实验内容:
1、 gcc 执行过程
第一个实验
新建 a.c:
Linux内核|实验二 gcc与make使用
预编译过程:
这个过程处理宏定义和include,并做语法检查。
Linux内核|实验二 gcc与make使用
编译过程:
这个阶段,生成汇编代码。
Linux内核|实验二 gcc与make使用
汇编过程:
这个阶段,生成目标代码。
此过程生成ELF格式的目标代码。
Linux内核|实验二 gcc与make使用
链接过程:
生成可执行代码。链接分为两种,一种是静态链接,另外一种是动态链接。使用静态链接的好处是,依赖的动态链接库较少,对动态链接库的版本不会很敏感,具有较好的兼容性;缺点是生成的程序比较大。使用动态链接的好处是,生成的程序比较小,占用较少的内存。
Linux内核|实验二 gcc与make使用
程序运行:
Linux内核|实验二 gcc与make使用

第二个实验
新建 hello.c:
Linux内核|实验二 gcc与make使用
执行情况如下:
Linux内核|实验二 gcc与make使用
2、 编写makefile文件
第三个实验
首先新建文件:
Linux内核|实验二 gcc与make使用
然后编辑各个文件的内容:
makefile文件
Linux内核|实验二 gcc与make使用
main.c文件
Linux内核|实验二 gcc与make使用
sub1.c文件
Linux内核|实验二 gcc与make使用
Sub2.c文件
Linux内核|实验二 gcc与make使用
头文件cmx.h
Linux内核|实验二 gcc与make使用

执行make,默认在当前路径下查找makefile文件并执行。如下图所示
Linux内核|实验二 gcc与make使用

3、 实验心得
注意在主函数加头文件引用申明,否则可能出现以下错误:
(1)未新建头文件
Linux内核|实验二 gcc与make使用
(2)未在主函数中申明头文件
Linux内核|实验二 gcc与make使用
(3)申明语句出现语法错误
Linux内核|实验二 gcc与make使用