欢迎来到 Franklin-Qi 的世界

Max
Min

如何写Makefile?

如何写Makefile ?

c++ makefile 实例

CXX=g++                                                                            
CXXFLAGS=-Wall -g                                                                  
RM=rm -f                                                                           
                                                                                   
LDFLAGS=                                                                           
                                                                                   
#使用“wildcard”函数获取工作目录下的.cpp文件列表                                    
SRCS=$(wildcard *.cpp)                                                             
                                                                                   
#patsubst :替换函数,将符合规则的cpp后缀替换为目标文件后缀o                                                             
OBJS=$(patsubst %.cpp,%.o,$(SRCS))                                                 
                                                                                   
TARGET = test                                                                      
                                                                                   
#$@--目标文件,$^--所有的依赖文件,$<--第一个依赖文件                              
$(TARGET):$(OBJS)                                                                  
    $(CXX) $(LDFLAGS) $^ -o $@                                                     
                                                                                   
#这个规则表示所有的 .o文件都是依赖与相应的.c文件的                                 
%.o:%.cpp                                                                          
    $(CXX) -c $(CXXFLAGS) $< -o $@                                                 
                                                                                   
.PHONY:clean                                                                       
clean:                                                                             
    @$(RM) *.o $(TARGET)

参考:
https://www.gnu.org/software/make/manual/make.html#toc-Overview-of-make
https://seisman.github.io/how-to-write-makefile/introduction.html

posted on 2020-08-11 15:59  yusq77  阅读(124)  评论(0编辑  收藏  举报

导航