gcc 编译选项spa
-c Compile and assemble, but do not link -o <file> Place the output into <file> -g Generate debug information in default format
简单的 Makefile 通常只用到前两项 gcc 选项,若是须要调试程序的话就用到第三个调试选项了。
.net
一个简单的 Makefile示例
debug
此工程由三个文件组成:调试
printHello.h printHello.c main.c
printHello.hcode
void printHello();
printHello.corm
#include <stdio.h> void printHello(){ printf("Hello World!\n"); }
main.cblog
#include "printHello.h" int main() { printHello(); return 0; }
Makefile(带调试选项)get
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
扩展知识:io
gcc编译过程分为四步编译
预编译过程:处理宏定义和include,并作语法检查。
编译过程:生成汇编代码。
汇编过程:生成中间目标代码。(-c)
链接过程:生成可执行代码。(-o)
关于 Makefile,能够看一下陈皓的跟我一块儿写 Makefile 系列文章
GDB 调试也能够看一看陈皓的用 GDB 调试程序系列文章