什么"$(@:%.o =%.d)"在makefile中是什么意思?

smw*_*dia 6 makefile gnu-make

我在makefile中看到GCC的下面命令选项:

... -MMD -MP -MF "$(@:%.o=%.d)" -MT "$(@:%.o=%.d)"  -o "$@" "$<"
Run Code Online (Sandbox Code Playgroud)

怎么解释呢?

我搜索了makefile文件,但到目前为止没有运气.

(这不仅仅是关于自动变量)

Que*_*tin 10

$(:=)执行字符串替换.
$@生成的文件的名称(目标).文件名也是
如此$(@:%.o=%.d),.o扩展名已更改为.d.

此命令行为.d每个.o文件生成一个依赖项文件.

  • @smwikipedia Make没有最漂亮的语法,我会给你:p (2认同)