天天看点

关于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)

继续阅读