zoukankan      html  css  js  c++  java
  • Makefile之写demo时的通用Makefile写法

    原创作品,转载时请务必以超链接形式标明文章原始出处:http://blog.csdn.net/gqb666/article/details/8956523,作者:gqb666

        前面的一篇博文Makefile之大型工程项目子目录Makefile的一种通用写法介绍了大型项目子目录Makefile的一种通用写法,然而最近在写Linux网络方面的demo,一个目录下有几个文件,如果手工输命令显得太不专业了大笑。于是按该博文的方法改编了一下Makefile,也当学习之用。该Makefile适用于一个C文件生成一个可执行程序的场景,使用该方法当工程目录内的文件有增删时无需对Makefile进行改动,可以说相当的智能。如果对patsubst、wildcard及subst函数不了解的话可参阅上述博文。同时在测试过程中,又发现了一种更简洁的写法,如代码片段2,应该是使用了某些默认规则,由于项目较忙,还未来得及深入研究,先记录下来,等空下来再研究,还望路过大侠多多指点。

    1:如果在当前目录中直接make的话使用下列代码:

    #General Purpose Makefile by guoqingbo
                               
    objects := $(patsubst %.c,%.o,$(wildcard *.c))  
    executables := $(patsubst %.c,%,$(wildcard *.c))  
                               
    all :  $(objects)
    $(objects) : %.o: %.c 
        gcc -c $< -o $@
        gcc $< -o $(subst .o, ,$@) 
    clean :
         @rm -rf *.o *~
         @rm -rf ${executables}
     .PHONY : clean

    2:后来发现下列代码也可以有相同效果,难道使用了什么默认规则,还不是很明白,先记录下来:

    #General Purpose Makefile by guoqingbo  
                                 
    executables := $(patsubst %.c,%,$(wildcard *.c))
                                 
    all : $(executables)
    
    clean :  
         @rm -rf *.o *~  
         @rm -rf ${executables}  
    .PHONY : clean
  • 相关阅读:
    git注册和基本命令
    thinkphp概述2
    thinkphp概述
    PHP基础知识总结
    phpmyadmin教程
    开发环境wamp3.06 + Zend studio 12 调试配置
    PHP标记风格,编码规范
    PHP开发工具 zend studio
    php与ajax技术
    可变参模板template
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3091461.html
Copyright © 2011-2022 走看看