一个不错的 MAKEFILE示例

common 和 src为同级目录

obj 为src下的一个目录,

所有的.o文件都放到/src/obj下

可执行文件在src下生成

 

COMMON=../common/
ODIR=./obj/
MAINOBJ=$(ODIR)main.o
COMOBJ=$(ODIR)MyCom.o
SQLOBJ=$(ODIR)Sqlite.o
TCPOBJ=$(ODIR)MyTcp.o
LOGOBJ=$(ODIR)WriteLog.o
OBJ=$(MAINOBJ) $(COMOBJ) $(SQLOBJ) $(TCPOBJ) $(LOGOBJ)
TARNAME=a.e
CC=arm-linux-g++
$(TARNAME): $(OBJ)
 $(CC) -o $(TARNAME) $(OBJ) -lpthread -lsqlite3
$(MAINOBJ): main.c $(COMMON)MyCom.h
 $(CC) -c main.c -o $(MAINOBJ)
$(COMOBJ):$(COMMON)MyCom.cpp $(COMMON)MyCom.h
 $(CC) -c $(COMMON)MyCom.cpp -o $(COMOBJ)
$(SQLOBJ):$(COMMON)Sqlite.cpp $(COMMON)Sqlite.h
 $(CC) -c $(COMMON)Sqlite.cpp -o $(SQLOBJ)
$(TCPOBJ):$(COMMON)MyTcp.cpp $(COMMON)MyTcp.h
 $(CC) -c $(COMMON)MyTcp.cpp -o $(TCPOBJ)
$(LOGOBJ):$(COMMON)WriteLog.cpp $(COMMON)WriteLog.h
 $(CC) -c $(COMMON)WriteLog.cpp -o $(LOGOBJ)
clean:
 rm -f $(ODIR)*.o

你可能感兴趣的:(一个不错的 MAKEFILE示例)