gpt4 book ai didi

c - makefile - 如何从变量中排除文件扩展名后缀

转载 作者:太空宇宙 更新时间:2023-11-04 01:59:55 24 4
gpt4 key购买 nike

下一个 makefile 从其命令行 arg -ARGS 接收要编译的文件。例如

制作 ARGS="out.c"

我想用不包括后缀的变量 ARGS 替换创建的可执行文件“run”的名称

在这个例子中: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

最佳答案

按照您的要求进行操作的粗略方法很简单:

EXEC := $(basename $(ARGS))
all: Task1
Task1: outputs/output.o
gcc -g -m32 -Wall -o $(EXEC) outputs/output.o

更好的方法是:

EXEC := $(basename $(ARGS))
all: $(EXEC)
$(EXEC): outputs/output.o
gcc -g -m32 -Wall -o $(EXEC) outputs/output.o

更好的是:

EXEC := $(basename $(ARGS))
all: $(EXEC)
$(EXEC): outputs/output.o
gcc -g -m32 -Wall -o $@ $^

关于c - makefile - 如何从变量中排除文件扩展名后缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28617311/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com