Makefile中的几个常见的符号及其含义

= 是最基本的赋值

:= 是覆盖之前的值

?= 是如果没有被赋值过就赋予等号后面的值

+= 是添加等号后面的值

“=”和“:=”的区别:

      1、“=”

      make会将整个makefile展开后,再决定变量的值。也就是说,变量的值将会是整个makefile中最后被指定的值。看例子:

            x = foo
            y = $(x) bar
            x = xyz

      在上例中,y的值将会是 xyz bar ,而不是 foo bar 。

      2、“:=”

      “:=”表示变量的值决定于它在makefile中的位置,而不是整个makefile展开后的最终值。

            x := foo
            y := $(x) bar
            x := xyz

      在上例中,y的值将会是 foo bar ,而不是 xyz bar 了。

ref:https://www.cnblogs.com/wanghuaijun/p/8092747.html

 

 

'@'     符号的使用
      通常makefile会将其执行的命令行在执行前输出到屏幕上。如果将‘@’添加到命令行前,这个命令将不被make回显出来。
      例如:@echo  --compiling module----;  // 屏幕输出  --compiling module----
                                echo  --compiling module----;  // 没有@ 屏幕输出echo  --compiling module----    

 

 
' - ' 符号的使用
     
     通常删除,创建文件如果碰到文件不存在或者已经创建,那么希望忽略掉这个错误,继续执行,就可以在命令前面添加 -,
     -rm dir;
     -mkdir aaadir;
ref:https://blog.csdn.net/u012989012/article/details/80572043
posted @ 2021-02-04 16:40  小小马进阶笔记  阅读(775)  评论(0编辑  收藏  举报