zoukankan      html  css  js  c++  java
  • 自用 方便写C语言demo的makefile

    #################################
    #FILES
    #################################
    objs := posix_ipcname sysv
    
    cfiles := $(wildcard *.c)
    cobjs := $(patsubst %.c,%,$(cfiles))
    
    $(warning cfiles : $(cfiles))
    $(warning cobjs : $(cobjs))
    
    
    ##################################
    #GOALS
    ##################################
    #the 'all' golas, depend on mult gols
    all: $(objs)
        -@echo [all] $+
    
    allc : $(cobjs)
        -@echo [allc] $+
        -@echo [allc] $@ $<
    
    #mult, any, golas's rule
    % : %.c
        -@echo [cobjs] $@ : $< [+.c]
        $(CC) $< -o $@ -g
        
    #################
    #CLEAN GOALS
    #################
    #$(objs): %.b : %.c
    #    -@echo BBBB $^ $@
    
    .PHONY: clean
    .PHONY: cleanc
    clean:
        -rm *.o
        -rm $(objs)
        
    cleanc:
        -rm *.o
        -rm $(cobjs)

    以上内容放到 名称为makefile 的文件中,保存到和你的demo 源文件到同一个目录下

    使用场景:

    每次新增一个.c  文件的单独模块的 demo后,都要手动写 gcc file.c -o file -g 来编译新增的demo文件 ,比较麻烦

    适合每个demo 单独一个.c 文件,写好源码后保存,在该目录打开 shell  只敲一句 make 就可以编译新增的.c 文件 (或手动配置到objs变量中也可以)

    命令:

    1组

    make

      只编译makefile中 objs 变量指定的文件 (不要.c的后缀)

    make clean 

      只清理  objs 编译出来的 .o 和 可执行文件

    2组

    make allc

      编译前扫一遍当前目录下的所有.c 文件 有哪些,可以省去不用添加新的源文件名到  objs 变量的麻烦。会将当前目录下所有.c 文件编译成 同名的可执行文件

    make cleanc

      扫一遍当前目录下的所有.c 文件 有哪些,清除这些文件的.o 和 可执行文件

    例如

    一目录下有3个demo文件

    每个都要敲gcc 很麻烦

    只要一句make

     都编译出来了

     
  • 相关阅读:
    eclipse下jsp文件报错解决方法
    使用vscode搭建本地的websocket
    tomcat的首次登录配置
    tomcat配置报错解决方法 The jre_home environment variable is not defined correctly
    cento升级openssl依旧显示老版本
    Centos6安装mysql5.7最新版
    Neutron服务组件
    网络OSI 7层模型
    Kubernetes的核心技术概念和API对象
    Xen 虚拟化技术
  • 原文地址:https://www.cnblogs.com/cyy12/p/12231403.html
Copyright © 2011-2022 走看看