zoukankan      html  css  js  c++  java
  • make编译五

    Make的运行

    有时候,我们不想让我们的makefile 中的规则执行起来,我们只想检查一下我们的命令,或是执行的序列。于是我们可以使用make 命令的下述参数:

    “-n”

    “--just-print”

    “--dry-run”

    “--recon”

    不执行参数,这些参数只是打印命令,不管目标是否更新,把规则和连带规则下的命令打印出来,但不执行,这些参数对于我们调试makefile 很有用处。比如makefile的文件如下:

    SHELL = /bin/bash

    sinclude test.d

    CC=gcc

    FLAGS=-i

    debug:

            echo -e -n " x24(CC) x24(FLAGS) -c main.c -o x24@" >> test.txt;

            @echo $(abc)

    执行make –just-print得到结果如下:

    echo -e -n " x24(CC) x24(FLAGS) -c main.c -o x24@" >> test.txt;

    echo hello

     

    —debug[=<options>]

    输出make 的调试信息。它有几种不同的级别可供选择,如果没有参

    数,那就是输出最简单的调试信息。下面是<options>的取值:

    a —— 也就是all,输出所有的调试信息。(会非常的多)

    b —— 也就是basic,只输出简单的调试信息。即输出不需要重编译

    的目标。

    v —— 也就是verbose,在b 选项的级别之上。输出的信息包括哪个

    makefile 被解析,不需要被重编译的依赖文件(或是依赖目标)等。

    i —— 也就是implicit,输出所以的隐含规则。

    j —— 也就是jobs,输出执行规则中命令的详细信息,如命令的PID、

    返回码等。

    m —— 也就是makefile,输出make 读取makefile,更新makefile,执行makefile 的信息。

     

    -v的的执行结果

    GNU Make 4.1

    Built for x86_64-pc-linux-gnu

    Copyright (C) 1988-2014 Free Software Foundation, Inc.

    License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

    This is free software: you are free to change and redistribute it.

    There is NO WARRANTY, to the extent permitted by law.

    正在读入 makefiles...

    Reading makefile 'makefile.cfg'...

    Reading makefile 'test.d' (搜索路径) (不用理) (没有 ~ 扩展)...

    更新目标....

    Considering target file 'debug'.

     Finished prerequisites of target file 'debug'.

    No need to remake target 'debug'.

    make: 'debug' is up to date.

     

    “-d”

    相当于“--debug=a”。

    “-e”

    “--environment-overrides”

    指明环境变量的值覆盖makefile 中定义的变量的值。

    “-f=<file>”

    “--file=<file>”

    “--makefile=<file>”

    指定需要执行的makefile。

    “-h”

    “--help”

    显示帮助信息。

    “-i”

    “--ignore-errors”

    在执行时忽略所有的错误。

    “-I <dir>”

    “--include-dir=<dir>”

    指定一个被包含makefile 的搜索目标。可以使用多个“-I”参数来指定

    多个目录。

    “-j [<jobsnum>]”

    “--jobs[=<jobsnum>]”

    指同时运行命令的个数。如果没有这个参数,make 运行命令时能运行多少就运行多少。如果有一个以上的“-j”参数,那么仅最后一个“-j”才是有效的。(注意这个参数在MS-DOS 中是无用的)

    “-k”

    “--keep-going”

    出错也不停止运行。如果生成一个目标失败了,那么依赖于其上的目标就不会被执行了。

    “-l <load>”

    “--load-average[=<load]”

    “—max-load[=<load>]”

    指定 make 运行命令的负载。

    “-n”

    “--just-print”

    “--dry-run”

    “--recon”

    仅输出执行过程中的命令序列,但并不执行。

    “-o <file>”

    “--old-file=<file>”

    “--assume-old=<file>”

    不重新生成的指定的<file>,即使这个目标的依赖文件新于它。

    “-p”

    “--print-data-base”

    输出makefile 中的所有数据,包括所有的规则和变量。这个参数会让一个简单的makefile 都会输出一堆信息。如果你只是想输出信息而不想执行makefile,你可以使用“make -qp”命令。如果你想查看执行makefile 前的预设变量和规则,你可以使用“make –p –f /dev/null”。这个参数输出的信息会包含着你的makefile 文件的文件名和行号,所以,用这个参数来调试你的makefile 会是很有用的,特别是当你的环境变量很复杂的时候。

    “-q”

    “--question”

    不运行命令,也不输出。仅仅是检查所指定的目标是否需要更新。如果是0 则说明要更新,如果是2 则说明有错误发生。

    “-r”

    “--no-builtin-rules”

    禁止make 使用任何隐含规则。

    “-R”

    “--no-builtin-variabes”

    禁止make 使用任何作用于变量上的隐含规则。

    “-s”

    “--silent”

    “--quiet”

    在命令运行时不输出命令的输出。

    “-S”

    “--no-keep-going”

    “--stop”

    取消“-k”选项的作用。因为有些时候,make 的选项是从环境变量“MAKEFLAGS”中继承下来的。所以你可以在命令行中使用这个参数来让环境变量中的“-k”选项失效。

    “-t”

    “--touch”

    相当于UNIX 的touch命令,只是把目标的修改日期变成最新的,也就是阻止生成目标的命令运行。

    “-v”

    “--version”

    输出make 程序的版本、版权等关于make 的信息。

    “-w”

    “--print-directory”

    输出运行makefile 之前和之后的信息。这个参数对于跟踪嵌套式调用make 时很有用。

    “--no-print-directory”

    禁止“-w”选项。

    “-W <file>”

    “--what-if=<file>”

    “--new-file=<file>”

    “--assume-file=<file>”

    假定目标<file>需要更新,如果和“-n”选项使用,那么这个参数会输出该目标更新时的运行动作。如果没有“-n”那么就像运行UNIX 的

    “touch”命令一样,使得<file>的修改时间为当前时间。

    “--warn-undefined-variables”

    只要make 发现有未定义的变量,那么就输出警告信息

  • 相关阅读:
    Recommended Books for Algo Trading in 2020
    Market Making is simpler than you think!
    Top Crypto Market Makers of 2020
    Top Crypto Market Makers, Rated and Reviewed
    爬取伯乐在线文章(五)itemloader
    爬取伯乐在线文章(四)将爬取结果保存到MySQL
    爬取伯乐在线文章(三)爬取所有页面的文章
    爬取伯乐在线文章(二)通过xpath提取源文件中需要的内容
    爬取伯乐在线文章(一)
    爬虫去重策略
  • 原文地址:https://www.cnblogs.com/zhanghongfeng/p/10251945.html
Copyright © 2011-2022 走看看