• $(MAKE) , make命令


    make 定义了很多默认变量,像常用的命令或者是命令选项之类的,什么CC啊,CFLAGS啊之类。
    $(MAKE)就是预设的 make 这个命令的名称(或者路径)。
    make -p 可以查看所有预定义的变量的当前值。

     ———————————————————————————————————————————————————————————————————————————————

    在一些大的工程中,我们会把我们不同模块或是不同功能的源文件放在不同的目录中,我们可以在每个目录中都书写一个该目录的Makefile,这有利于让我们的Makefile变得更加地简洁,而不至于把所有的东西全部写在一个Makefile中,这样会很难维护我们的Makefile,这个技术对于我们模块编译和分段编译有着非常大的好处。

    例如,我们有一个子目录叫subdir,这个目录下有个Makefile文件,来指明了这个目录下文件的编译规则。那么我们总控的Makefile可以这样书写:

    subsystem:

    cd subdir && $(MAKE)

    其等价于:

    subsystem:

    $(MAKE) -C subdir

    定义$(MAKE)宏变量的意思是,也许我们的make需要一些参数,所以定义成一个变量比较利于维护。这两个例子的意思都是先进入“subdir”目录,然后执行make命令。

    我们把这个Makefile叫做“总控Makefile”,总控Makefile的变量可以传递到下级的Makefile中(如果你显示的声明),但是不会覆盖下层的Makefile中所定义的变量,除非指定了“-e”参数。

    ———————————————————————————————————————————————————————————————————————————————

    Makefile中允许使用简单的宏指代源文件及其相关编译信息,在Linux中也称宏为变量。在引用宏时只需在变量前加$符号,但值得注意的是,如果变量名的长度超过一个字符,在引用时就必须加圆括号()。

  • 相关阅读:
    WEB上传大文件
    Java+超大文件上传
    php+文件夹上传
    php上传视频大文件
    每一个程序猿需掌握的20个代码命名小贴士
    Mysql整数运算NULL值处理注意点
    拓展欧几里得模板
    bzoj 1088 简单dfs
    决策树
    进程-IPC 管道 (一)
  • 原文地址:https://www.cnblogs.com/nosadness/p/5136560.html
Copyright © 2020-2023  润新知