在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)