一些make/makefile中的命令含义
转载至:
- make/makefile中的加号+,减号-和at号@的含义 - 海王 - 博客园
- make命令参数和选项大汇总
- Linux 下的make命令与Makefile_Fythons的博客-CSDN博客_make命令
- Makefile的写法_小炉灶-CSDN博客_makefile怎么写
无论是在Linux还是在Unix环境中,make都是一个非常重要的编译命令。不管是自己进行项目开发还是安装应用软件,我们都经常要用到make或make install。利用make工具,我们可以将大型的开发项目分解成为多个更易于管理的模块,对于一个包括几百个源文件的应用程序,使用make和makefile工具就可以简洁明快地理顺各个源文件之间纷繁复杂的相互关系。
部分符号及含义:(详细的参考:make命令参数和选项大汇总)
符号 | 含义 |
---|---|
@ | 使命令在被执行前不被回显 |
- | 使任何命令行的任何非零退出状态都被忽略 |
$(< function> < arguments>) | 调用函数function |
# | 注释 |
-f=FILE,-- file=FILE,-- makefile=FILE | read file as a makefile |
-t, --touch | touch target,更新所有的目标文件的时间戳到当前系统时间 |
-o | consider file to be very old, and don’t remake it |
–help | 打印帮助信息 |
图片来源:Makefile的写法_小炉灶-CSDN博客_makefile怎么写
【make中命令行前面加上减号】
就是,忽略当前此行命令执行时候所遇到的错误。
而如果不忽略,make在执行命令的时候,如果遇到error,会退出执行的,加上减号的目的,是即便此行命令执行中出错,比如删除一个不存在的文件等,那么也不要管,继续执行make。
【make中命令行前面加上at符号@】
就是,在make执行时候,输出的信息中,不要显示此行命令。
而正常情况下,make执行过程中,都是会显示其所执行的任何的命令的。如果你不想要显示某行的命令,那么就在其前面加上@符号即可。
【make中的宏定义】
(Make命令完全详解教程 - No Sadness - 博客园 https://www.cnblogs.com/nosadness/p/5136652.html)
Makefile中允许使用简单的宏指代源文件及其相关编译信息,在Linux中也称宏为变量。在引用宏时只需在变量前加$符号,但值得注意的是,如果变量名的长度超过一个字符,在引用时就必须加圆括号( )。
- 内部宏:
$? :比目标的修改时间更晚的那些依赖模块表。
[email protected] :当前目标的全路径名。可用于用户定义的目标名的相关行中。
$< :比给定的目标文件时间标记更新的依赖文件名。
$* :去掉后缀的当前目标名。例如,若当前目标是 pro.o,则 $*表示pro。 - 有效的宏引用 :
$(CFLAGS)
$2
$Z
$(Z)
需要注意的是一些宏的预定义变量,在Unix系统中,@、<四个特殊宏的值在执行命令的过程中会发生相应的变化,而在GNU make中则定义了更多的预定义变量。