【发布时间】:2015-02-19 21:30:46
【问题描述】:
下一个 makefile 从它的命令行参数 -ARGS 接收要编译的文件。例如
使 ARGS="out.c"
我想将创建的可执行文件“run”的名称替换为不包括后缀的变量 ARGS
在这个例子中:run="out"
all: Task1
Task1: outputs/output.o
gcc -g -m32 -Wall -o run outputs/output.o
outputs/output.o: outputs/${ARGS}
gcc -m32 -g -w -Wall -ansi -c -o outputs/output.o outputs/${ARGS}
.PHONY: clean
run: clean Task1
clean:
rm -f outputs\output.o Task1
【问题讨论】:
-
您的问题不清楚。你究竟是如何调用
make,你想让它做什么? -
您确定要将目标文件命名为
output.o吗? -
在哪个操作系统上?如果在 Linux 上,
clean目标rm命令的反斜杠是错误的! -
为什么
clean规则会尝试删除Task1,这是一个从未构建过的文件? -
我真的很惊讶人们花更多的时间在这里提出错误的问题(并等待答案)而不是阅读文档。