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 調試程序系列文章