再发一个通用的Makefile

简介: 再发一个通用的Makefile

这个makefile只需要修改编译器和目标名, 以及源文件、头文件、.o保存目录

就可以直接使用,以后再添加源文件或头文件,都不用再修改makefile!


共享如下:

/*************************************************************************************/
 
#通用makefile
#文件目录
DEBUG_DIR=./debug
SRC_DIR=./src
INC_DIR=./inc
 
 
#INC_DIR += common/include
 
 
SRC=$(wildcard $(SRC_DIR)/*.cpp )  #源文件
OBJS=$(patsubst $(SRC_DIR)/%.cpp,$(DEBUG_DIR)/%.o,$(SRC))
 
 
#目标文件名
TARGET=test
#安装目录
INSTALL_PATH ?= .
 
 
#编译器选择
ARCH ?= 
CC=$(ARCH)gcc
CPP=$(ARCH)g++
AR=$(ARCH)ar
AR=$(ARCH)ar
 
 
 
 
CFLAGS += -Wall 
 
 
#添加用到的静态库及库路径
LDFLAGS += -lpthread
#LDFLAGS += ./common/arm_lib/libxx.a 
#LIB_PATH += ./common/arm_lib/
 
 
 
 
CFLAGS  += $(foreach dir,$(INC_DIR),-I$(dir))
LDFLAGS += $(foreach lib,$(LIB_PATH),-L$(lib))
 
 
 
 
all:$(TARGET)
$(TARGET): $(OBJS)
$(CPP) $(OBJS) -o $@ $(CFLAGS) $(LDFLAGS)
#cp $(TARGET) $(INSTALL_PATH)
 
 
 
 
$(DEBUG_DIR)/%.o: $(SRC_DIR)/%.cpp
$(CPP) $(CFLAGS) -c $< -o $@ 
#@echo " "
 
 
 
 
clean:
-rm $(DEBUG_DIR)/*.o $(TARGET)
目录
相关文章
|
编译器
通用Makefile的使用及解析1
通用Makefile的使用及解析
97 0
通用Makefile的使用及解析 2
通用Makefile的使用及解析
184 0
|
NoSQL Shell Linux
【六、深度解析Makefile】工程文件编译链接的“规则制定者”:带你走进 makefile 的世界(三)
【六、深度解析Makefile】工程文件编译链接的“规则制定者”:带你走进 makefile 的世界
284 0
【六、深度解析Makefile】工程文件编译链接的“规则制定者”:带你走进 makefile 的世界(三)
|
Shell Linux 开发工具
【六、深度解析Makefile】工程文件编译链接的“规则制定者”:带你走进 makefile 的世界(一)
【六、深度解析Makefile】工程文件编译链接的“规则制定者”:带你走进 makefile 的世界
549 0
【六、深度解析Makefile】工程文件编译链接的“规则制定者”:带你走进 makefile 的世界(一)
|
自然语言处理 算法 NoSQL
【六、深度解析Makefile】工程文件编译链接的“规则制定者”:带你走进 makefile 的世界(二)
【六、深度解析Makefile】工程文件编译链接的“规则制定者”:带你走进 makefile 的世界
228 0
【六、深度解析Makefile】工程文件编译链接的“规则制定者”:带你走进 makefile 的世界(二)
doubango编码及发送流程的疑惑
doubango编码及发送流程的疑惑
68 0
|
算法 Linux C++
G++ 4.4.7 无法编译模板程序,Vs可以,和解?智者尾部留言,本人第一次使用vs pro,通常并且习惯在linux下写些小东西,虽然程序简单;
vs 模板编译运行Ok \ linux g++ 4.4.7编译模板测试程序,报无法定义 template 类型的数据    Example is sample!But include Knowledge is more eg: 1,Reference type 2,多不同类型公用一种算法使用-...
1192 0