网站做三方登陆需要注册公司不,长春哪家网站做的好,遂宁网页设计公司,网站系统建设支出分录一#xff0c;简介
我们在使用gcc编译程序时#xff0c;常常需要自己实现Makefile#xff0c;那么如何快速的实现Makefile呢#xff1f;这里把一些基本的操作整理成模板#xff0c;供参考。
二#xff0c;模板介绍
功能包含基本功能编译exe#xff08;包括调用其他算…一简介
我们在使用gcc编译程序时常常需要自己实现Makefile那么如何快速的实现Makefile呢这里把一些基本的操作整理成模板供参考。
二模板介绍
功能包含基本功能编译exe包括调用其他算法库的功能。
话不多说直接上模板
# 1 base command
CC : gcc
AR : ar
RM : rm -rf
MKDIR : mkdir -p# 2 inclue path and .c files path
PROJECT_PATH : .
IGNORE_INC_DIR : ./.git ./Makefile_template
INCLUDE_PATH : $(shell find $(PROJECT_PATH) -type d $(foreach dir, $(IGNORE_INC_DIR), -not -path *$(dir)*))IGNORE_SRC_FILE_DIR :
SRC_FILE_PATH : $(shell find $(PROJECT_PATH) -type d $(foreach dir, $(IGNORE_SRC_FILE_DIR), -not -path *$(dir)*))ALGO_LIB_DIR : # 3 build flags
C_INC_FLAGS : $(addprefix -I, $(INCLUDE_PATH))
COMMON_FLAGS : -O2 -g0 -W
CFLAGS : $(C_INC_FLAGS) $(COMMON_FLAGS)LIB_FLAG : # 4 src files and objs
SRC_FILES : $(foreach dir,$(SRC_FILE_PATH),$(wildcard $(dir)/*.c))
#SRC_FILES : $(shell find $(SRC_FILE_PATH) -name *.c)
SRC_OBJS : $(patsubst %.c, %.o, $(SRC_FILES))# 5 target define
OUTPUT_DIR : out
TARGET : out/output.exe# 6 build command
Executable: $(OUTPUT_DIR) $(TARGET)$(OUTPUT_DIR):$(MKDIR) $$(TARGET):$(CC) $(SRC_FILES) $(CFLAGS) $(LIB_FLAG) -o $$(SRC_OBJS):%.o:%.c$(CC) $(CFLAGS) -o $ $clean:$(RM) $(SRC_OBJS) $(TARGET)# 7 debug info
print:$(info $(INCLUDE_PATH))$(info $(SRC_FILE_PATH))$(info $(SRC_FILES)).PHONY: all clean
三总结
本文主要介绍了一般Makefile的模板供参考。