为什么 echo 对 mt valgrind 命令不起作用?

为什么 echo 对 mt valgrind 命令不起作用?

所以我的 makefile 工作得很好,除了它没有创建 valgrind.out 文件,我不知道为什么。因此控制台成功打印出我的可执行文件行已创建,但不是 valgrind.out

在此输入图像描述

答案1

您必须指定目标:

make valgrind

因为它不是 的一部分all

其他注意事项

在 Makefile 中,您(很可能)必须指定目录,./line而不是line瓦尔格林德目标。

正如所指出的@凯西用于$(EXEC)一致性。

此外,您可能还应该替换>&为,>file 2>&1因为后者更有可能被接受什么外壳,(可能是sh),你的make用途。

因此类似:

valgrind:
    valgrind --leak-check=yes ./$(EXEC) >valgrind.out 2>&1
    @echo 'valgrind.out has been created'

相关内容