Makefile知识点

1.标准Makefile文件示例如下:

#把.o .C .cxx .cpp .hxx .h添加到后缀列表中。
.SUFFIXES: .o .C .cxx .cpp .hxx .h

#设置变量并赋值,方便后面编译链接
CC= g++ -D_LINUX_ -fpermissive -Wall -Wno-format-y2k
DEBUG=-g
C++FLAGS= $(DEBUG) -D_PTHREAD_USE_D4 -D_ORACLE_ -DHISSVR_A -D_OSVer4 -DONE_DAY  -D_EXTENSIONS_ 

LIB_DIR = -L$(HOME)/lib -L$(HOME)/src/lib  -L$(HOME)/service/src/lib
LIB= -ldl -lpthread -lrtdb_api -ldcisg_dm -lmode_manage -lrte -lservices

INC_DIR = -I./include  -I$(HOME)/src/include

OBJS = maintenance_ticket.o

#.cpp.o是老式的“后缀规则”,编译器将会自动将.cpp识别为源文件后缀,而.o识别为输出文件后缀。特别需要注意的是,后缀规则不允许任何依赖文件,但也不能没有命令。
#$^表示所有依赖,($<表示第一个依赖)($@表示目标文件).也就是将所有的.cpp文件都生成对应的.o文件。
.cpp.o:
	$(CC) $(C++FLAGS)  $(INC_DIR) -c $<

.cxx.o:
	$(CC) $(C++FLAGS)  $(INC_DIR) -c $<

maintenance_ticket : maintenance_ticket.o
	$(CC) $(C++FLAGS) $(INC_DIR)  -o maintenance_ticket maintenance_ticket.o $(LIB_DIR) $(LIB)

clean:
	rm -f $(OBJS)

#伪目标,即使当前存在clean文件对象,也会继续执行这个伪目标。
.PHONY: clean
 



原文地址:https://www.cnblogs.com/linux-wang/p/8142758.html