【Linux】编写 Makefile

  • 适配多文件多目录
#################################################### #####Copyright (c) 2018, code farmer from sust.##### ###############All rights reserved.#################.PHONY: clean install# multi file INC = ./include SRC = https://www.it610.com/article/src OBJ = ./obj BIN = ./bin BIN_TARGET = $(BIN)/testCC = gcc CFLAGS = -g -Wall -I${INC}# match *.c SOURCE = $(wildcard $(SRC)/*.c) # replace *.o with *.c OBJECT = $(patsubst %.c, $(OBJ)/%.o, $(notdir $(SOURCE)))$(BIN_TARGET):$(OBJECT) $(CC) $(CFLAGS) $(OBJECT) -o $@$(OBJ)/%.o:$(SRC)/%.c $(CC) $(CFLAGS) -c $< -o $@# echo debug info echo: @echo $(CC) @echo $(SRC) @echo $(INC) @echo $(OBJ) @echo $(BIN)install: install -m 755 $(BIN) /usr/local/binclean: rm -rf $(OBJECT) $(BIN_TARGET)

  • 适配单个文件(C)
#################################################### #####Copyright (c) 2018, code farmer from sust.##### ###############All rights reserved.#################.PHONY: clean installCC = gcc #CFLAGS = -g -Wall -fno-stack-protector CFLAGS = -g -Wall# match *.c SOURCE = $(wildcard ./*.c) # replace * with *.c #BIN = $(patsubst %.c, %, $(notdir $(SOURCE))) BIN = $(basename $(SOURCE))$(BIN): $(SOURCE) $(CC) $(CFLAGS) $(SOURCE) -o $@# echo debug info echo: @echo $(CC) @echo $(SOURCE) @echo $(BIN)install: install -m 755 $(BIN) /usr/local/binclean: rm -rf $(BIN)

  • 适配单个文件(C++)
#################################################### #####Copyright (c) 2018, code farmer from sust.##### ###############All rights reserved.#################.PHONY: clean installCC = g++ CFLAGS = -g -Wall -std=c++11 #CFLAGS = -g -Wall -pthread -Wno-int-to-pointer-cast -Wpointer-to-int-cast -fno-stack-protector# match *.c* SOURCE = $(wildcard ./*.c*) # match suffix #SUFFIX = $(suffix $(SOURCE)) # replace * with *.c* #BIN = $(patsubst %$(SUFFIX), %, $(notdir $(SOURCE))) BIN = $(basename $(SOURCE))$(BIN): $(SOURCE) $(CC) $(CFLAGS) $(SOURCE) -o $@# echo debug info echo: @echo $(CC) @echo $(SOURCE) @echo $(SUFFIX) @echo $(BIN)install: install -m 755 $(BIN) /usr/local/binclean: rm -rf $(BIN)

【【Linux】编写 Makefile】

    推荐阅读