mk中使用case语句
时间: 2023-09-01 21:08:05 浏览: 260
在Makefile中,您可以使用case语句来根据不同的条件执行不同的命令。 case语句通常用于在Makefile中选择不同的编译器、链接器或其他工具,具体取决于您的操作系统或其他因素。
以下是一个使用case语句的示例:
```
OS := $(shell uname -s)
ifeq ($(OS),Linux)
COMPILER = gcc
else ifeq ($(OS),Darwin)
COMPILER = clang
else
$(error Unsupported operating system: $(OS))
endif
all:
case $(COMPILER) in \
gcc) \
echo "Using GCC"; \
$(COMPILER) -o myprog myprog.c; \
;; \
clang) \
echo "Using Clang"; \
$(COMPILER) -o myprog myprog.c; \
;; \
*) \
echo "Unsupported compiler: $(COMPILER)"; \
exit 1; \
;; \
esac
```
在这个例子中,我们首先使用$(shell ...)函数获取当前操作系统的名称,并将其保存到名为OS的变量中。然后,我们使用ifeq语句根据操作系统选择编译器(gcc或clang)。
最后,我们定义了一个名为all的目标,其中使用case语句根据编译器类型执行不同的命令。如果编译器不是gcc或clang,则case语句将执行默认命令,打印错误消息并退出。
请注意,在case语句中,我们使用反斜杠(\)将每行连接起来,以便让Makefile可以正确地解析它们。
阅读全文