文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>Makefile模版-仿linux启动--绚丽感觉

Makefile模版-仿linux启动--绚丽感觉

时间:2009-05-08  来源:tastesweet

  写程序,文件多的时候实用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小时。主要在查找资料上花费太多时间。
相关阅读 更多 +
排行榜 更多 +
味子夫

味子夫

购物比价 下载
恩猫

恩猫

购物比价 下载
街头纷争

街头纷争

动作格斗 下载