练习使用 gcc 编译器编译 C 程序并执行,编写 Makefile 文件,使用 make 工具编译程 序并执行。具体要求: (1)编写简单的 C 程序,功能为在屏幕上输出“Hello gcc!”。利用该程序练习使用 gcc 编 译器的 E、S、c、o、g 选项,观察不同阶段所生成的文件,即*.c、*.i、*.s、*.o 文件和可 执行文件。 (2)编写一个由头文件 greeting.h、自定义函数文件 greeting.c、主函数文件 myapp.c 构成 的 C 程序,并根据这三个文件的依赖关系编写 Makef ile 文件。
时间: 2024-03-10 11:47:17 浏览: 158
好的,我明白了。对于你的第一个问题,我可以回答如下:
首先,你需要创建一个 C 语言源文件,比如可以命名为 hello.c,其中的内容如下:
```
#include <stdio.h>
int main()
{
printf("Hello gcc!\n");
return 0;
}
```
接着,你可以使用 gcc 编译器来编译该源文件,使用的命令如下:
```
gcc -E hello.c -o hello.i // 预处理,生成 hello.i 文件
gcc -S hello.i -o hello.s // 编译,生成 hello.s 文件
gcc -c hello.s -o hello.o // 汇编,生成 hello.o 文件
gcc hello.o -o hello // 链接,生成可执行文件 hello
```
在这些命令中,-E 选项表示预处理,-S 选项表示编译为汇编代码,-c 选项表示汇编为目标文件,-o 选项表示指定输出文件名。
接下来,你可以使用 make 工具来编译和执行该程序。你需要创建一个名为 Makefile 的文件,其中包含编译和链接该程序的规则。具体内容如下:
```
myapp: greeting.o myapp.o
gcc -o myapp greeting.o myapp.o
greeting.o: greeting.c greeting.h
gcc -c greeting.c
myapp.o: myapp.c greeting.h
gcc -c myapp.c
clean:
rm -f *.o myapp
```
在这个 Makefile 中,myapp 是最终生成的可执行文件名,依赖于 greeting.o 和 myapp.o 两个目标文件。greeting.o 依赖于 greeting.c 和 greeting.h 两个源文件,myapp.o 依赖于 myapp.c 和 greeting.h 两个源文件。最后,clean 是一个伪目标,用于删除生成的目标文件和可执行文件。
使用 make 工具来编译和执行该程序非常简单,只需要在命令行中输入 make 命令即可:
```
make
./myapp
```
这样,你就可以看到程序的输出结果了。希望我的回答能够帮助到你!
阅读全文