zoukankan      html  css  js  c++  java
  • 编写Makefile规则

    一个工程中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个shell脚本一样,其中也可以执行操作系统的命令。

    Makefile规则

    目标:依赖.................................

    tab键 命令
    能够执行的条件:a、目标不存在 b、依赖已更新
    这就是最基本的规则。
    标通常是要生成的文件的名称,通常是可执行文件或目标文件,也可以是一个执行动作的名称,比如clean。
    依赖是用来产生目标的材料,一个目标经常有几个依赖。命令是生成目标时执行的动作,一个规则可以包含有几条命令,每个命令占一行,注意每个命令前面必须有一个tab字符。

    下面是一个简单的Makefile的编写。

    hello:hello.c a.c  
        gcc -o hello hello.c a.c

    也可以是下面的形式

    hello:hello.o a.o  
        gcc -o hello hello.o a.o  
    hello.o:hello.c  
        gcc -o hell.o -c hello.c  
    a.o:a.c  
        gcc -o a.o -c a.c

    以上的规则与第一个一样,这里-c表示是只编译不链接。

    上面的规则还可以用通配符来表示

    hello:hello.o a.o  
        gcc -o $@  $^  
    %.o:%.c  
        gcc -o $@ -c $

    还可以执行相应的动作

    hello:hello.o a.o  
        gcc -o $@  $^  
    %.o:%.c  
        gcc -o $@ -c $<  
    clean:  
        rm *.o hello

    这是编写Makefike最简单的规则。

  • 相关阅读:
    【svn】一个设置,少写几个字
    转眼一年
    linux虚拟机与windows主机传输文件方法
    meta常用命令
    Metasploit 读书笔记-持久控制
    Metasploit 读书笔记-神器Meterpreter
    [工作]采购失误
    解决:kali linux 在vmware 虚拟机中使用bridge模式上网的问题
    metasploit 读书笔记-EXPLOITATION
    [共鸣]温州600住户合买高音炮 还击广场舞大妈
  • 原文地址:https://www.cnblogs.com/Ye-Jason/p/7353709.html
Copyright © 2011-2022 走看看