写程序,文件多的时候实用gcc就不方便了,就需要Makefile了,但自己对与Makefile复杂的依赖关系、规则非常的厌恶,世界是高速发展的,不要把时间浪费在无聊是事情上,收集一些Makefile的模版,以后的小规模程序就可以套用了。下边的Makefile是李建(
www.mculee.cn)给的,非常的好用。
# 现有一个ipmsg项目
# .c文件有pthread.c socket_init.c use_data.c main.c
# 头文件有:pthread.h socket_init.h use_data.h
# 上边.c 文件中只有main.c自己的头文件
# 使用这个makefile时,一个.c对应一个同名的.h文件 不包含.h的.c文件需额外支出
# 以后多文件编译时,直接套用这个模版就可以了。
# 推荐操作: 每次make时最好make clean
TARGET=ipmsg #【要生成可执行文件名】
#【这里填入需要编译的文件对应的.o文件名,这里的.c文件对应一个.h】
OBJ=pthread.o socket_init.o use_data.o CFLAG=-Wall -g -w#【编译选项】 OBJ_NO_H=main.o #【只有.c没有对应.h文件写在这里,写成对应的.o文件】 CC=gcc#【编译器】 LIBS= -lpthread#【需要加入的额外库文件】
## 输出样式 与编译无关 OFFSET=\x1b[41G COLOR=\x1b[1;34m RESET=\x1b[0m CLEAR=\x1b[H\x1b[J
## 以后的不用修改 $(TARGET): $(OBJ_NO_H) $(OBJ) @echo -n "Generating $@..." @if $(CC) $(CFLAG) -o $@ $^ $(LIBS); then echo -e "$(OFFSET)$(COLOR)[ OK ]$(RESET)"; fi
%.o: %.c %.h @echo -n "Compiling $<..." @if $(CC) $(CFLAG) -c -o $@ $<; then echo -e "$(OFFSET)$(COLOR)[ OK ]$(RESET)"; else exit 1; fi
clean: @echo -n "Cleanning up..." @rm -rf *.o *.bak *~ $(TARGET) @echo -e "$(OFFSET)$(COLOR)[ OK ]$(RESET)"
clear: @echo -ne "$(CLEAR)Cleanning up..." @rm -rf *.o *.bak *~ $(TARGET) @echo -e "$(OFFSET)$(COLOR)[ OK ]$(RESET)"
|
该工作耗时: 1.5小时。主要在查找资料上花费太多时间。
阅读(1606) | 评论(0) | 转发(0) |