美文网首页
Makefile 模板

Makefile 模板

作者: 指尖叹 | 来源:发表于2018-09-29 15:12 被阅读0次

Makefile 不常写,但有时候需要写的时候,反而不知道如何下手。现对Makefile 相关收录如下。
Makefile 常用变量
$ @ 目标 ,^ 所有依赖 ,< 第一个依赖
CC c编译器,CXX c++ 编译器,CFLAGS c 编译选项,CXXFLAGS c++编译选项。

Makefile 常规模板,利用makefile 的自动推导依赖

EXEC = MyTarget
CC = gcc
CFLAGS = -g -std=gnu99 -I./include/
LDFLAGS = -ltar  -lrt -L./lib/
OBJS = main.o buffer.o test.o
$(EXEC):$(OBJS)
    $(CC) -o $@ $^ $(LDFLAGS) 
clean:
    rm $(EXEC) $(OBJS)

以上Makefile 没法检测头文件修改,如果工程大可以用如下Makefile 模板

####################
# $名称: Makefile
# $时间:
####################
#1. 定义可执行文件的名称
TARGET = TestMyTar
#2. 指定此工程所需要头文件路径
INC_PATH = -I. -I./include 
LIB_PATH = -L../lib/ 
LIBS = -lpthread -lrt 
#3. 指定cpp 文件的目录
VPATH = .:src
#4. 定义变量包含所有cpp 文件
SRC_PATH = $(foreach dir, $(subst :, ,$(VPATH)), $(wildcard $(dir)/*.cpp))
#5. 定义编译中间文件存放路径
OBJ_DIR = ./obj
OBJ_PATH = $(addrefix $(OBJ_DIR)/, $(subst :, ,$(VPATH)))
#6. 定义链接成目标 所有的obj 文件
OBJS = $(addprefix $(OBJ_DIR)/,$(subst .cpp, .o, $(SRC_PATH)))
#7. 定义依赖文件名称
DEPS = $(OBJS:.o=.o.d)
#8. 创建 obj 文件存放的目录
MAKE_OBJECT_DIR := $(shell mkdir -p $(OBJ_DIR) $(OBJ_PATH))
#9. 定义编译器
CXX = g++
CXXFLAGS = -std=c++11 -g $(INC_PATH)
LDXXFLAGS = $(LIBS) $(LIB_PATH)
#10. 定义目标生成规则
$(TARGET):$(OBJS)
    $(CXX) -o $@ $(OBJS)  $(LDXXFLAGS)
#11. 定义obj 文件生成规则
$(OBJ_DIR)/%.o : %.cpp
    $(CXX) $(CXXFLAGS) -o $@ -c %<
#12. 定义预编译依赖 文件生成规则
$(OBJ_DIR)/%.o.d : %.cpp
    @set -e; rm -f $@; \
    $(CXX) $< -MM -std=c++11 $(INC_PATH) > $@.$$$$; \
    sed 's,.*\.o[ ]*:,$(OBJ_DIR)/$*.o $@ :,g' < $@.$$$$ > $@; \
    rm -f $@.$$$$
#13. 引入编译依赖文件
ifneq($(MAKECMDGOALS), clean)
 sinclude $(DEPS)
endif
#14. clean
clean:
    rm -rf ./obj
    rm -rf $(TARGET)


相关文章

  • Linux Makefile文件模板

    1、编译驱动的Makefile文件模板: 2、编译c/c++文件的Makefile文件模板: 3、带文件夹的文件模...

  • Makefile 模板

    Makefile 不常写,但有时候需要写的时候,反而不知道如何下手。现对Makefile 相关收录如下。Makef...

  • Makefile

    1.makefile 简单模板: 2.make

  • C程序生成工具

    (1)makefile常用模板:(2)automake和autoconf (3)cmake

  • Makefile小模板

    windows程序员请绕路。 刚学Linux的时候,接触到Makefile这种东西,根本不知道是什么东西。虽然现在...

  • 通用makefile模板

    最近在写makefile记录一下,一个简单通用的makefile直接放到.c和.h下 输入make即可。帮助初学者...

  • 几个Makefile的模板

    静态库 可执行文件

  • makefile & CMake 简明模板

    makefile cmake

  • Linux驱动编程模板

    一个linux驱动编程模板,用于以后编程需要,模板由三部分组成,一是驱动模板程序,二是Makefile文件,三是驱...

  • Qt pro

    注释 从“#”开始,到这一行结束。 2.模板变量告诉qmake为这个应用程序生成哪种makefile。 下面是可供...

网友评论

      本文标题:Makefile 模板

      本文链接:https://www.haomeiwen.com/subject/tiepoftx.html