gcc 编译选项
-c Compile and assemble, but do not link
-o <file> Place the output into <file>
-g Generate debug information in default format
简单的 Makefile 一般只用到前两项 gcc 选项,如果需要调试程序的话就用到第三个调试选项了。
一个简单的 Makefile示例
此工程由三个文件组成:
printHello.h
printHello.c
main.c
printHello.h
void printHello();
printHello.c
#include <stdio.h>
void printHello(){
printf("Hello World!\n");
}
main.c
#include "printHello.h"
int main() {
printHello();
return 0;
}
Makefile(带调试选项)
hello : main.o printHello.o
cc -o hello main.o printHello.o
main.o : main.c printHello.h
cc -c -g main.c
printHello.o : printHello.c
cc -c -g printHello.c
clean :
rm hello main.o printHello.o
扩展知识:
gcc编译过程分为四步
预编译过程:处理宏定义和include,并做语法检查。
编译过程:生成汇编代码。
汇编过程:生成中间目标代码。(-c)
连接过程:生成可执行代码。(-o)
关于 Makefile,可以看一下陈皓的跟我一起写 Makefile 系列文章
GDB 调试也可以看一看陈皓的用 GDB 调试程序系列文章