天天看點

關于makefile的一點思考

在GNU編譯工具軟體中,如果對單一的源檔案進行編譯,可運作指令如下:gcc -oxxxx  xxxx.c  。此指令會将源檔案編譯為目标檔案。若是對線程類檔案進行編譯,則在末尾加上 -lpthread指令。

但若是對多檔案進行編譯,即若是編譯的目标檔案同時包含另一檔案中的函數。則在編譯的時候需将另一檔案加到編譯源檔案中。即: gcc -o xxxx  xxxx.c bbbb.caaaa.c 。這一點需要特别注意。并不同于VC的編譯方法。

少量的檔案還好,如果是需要對大量的源檔案進行編譯,則此時需要添加多個檔案,這是非常麻煩的一件事情。而且如果個别檔案修改了,整個所有的檔案需要重新編譯一遍。費時費力。此時就需要運用makefile來實作編譯。Makefile通過一定的規則,将各個依賴的檔案互相組織起來,友善快捷的實作了多檔案的編譯。

在linux環境下編寫運作于電話開發闆的makefile檔案大體如下

CC=/opt/ifx-lxdb-1-2/gcc-3.3.6/toolchain-mips/bin/mips-linux-gcc

//CFLAGS= -DDEBUG -D__Linux__-g

CCFLAGS=-Wall

xxx: xxx.o xxxxx.o

$(CC) $(CCFLAGS)xxx.o xxxxx.o -o xxx

cp xxx/boardshare

xxx.o:xxx.c

$(CC) -c$(CCFLAGS) xxx.c -o xxx.o

xxxxx.o:xxxxx.c

$(CC) -c$(CCFLAGS) xxxxx.c -o xxxxx.o 

clean:

rm -rf  *.o 

(文章原創,轉載請聲明 2011.4.21)

繼續閱讀