makefile怎么设置编译器模式为c99
时间: 2024-03-18 10:40:33 浏览: 39
可以在Makefile中使用CFLAGS变量来设置编译器的选项,包括设置编译器模式为C99。下面是一个示例:
```
CC = gcc
CFLAGS = -std=c99
program: main.c helper.c
$(CC) $(CFLAGS) -o program main.c helper.c
```
在上面的示例中,CFLAGS变量设置为"-std=c99",这将告诉编译器使用C99模式编译代码。然后在编译命令中使用$(CFLAGS)来包含这个选项。
相关问题
在makefile文件里执行c99标准怎么加
在Makefile文件中,你可以通过在编译器选项中添加“-std=c99”来指定使用C99标准。具体来说,你可以在以下方式中的任何一个位置添加该选项:
1. 在Makefile中指定CFLAGS变量:
```
CFLAGS=-std=c99
```
然后,在编译命令中使用$(CFLAGS)变量,例如:
```
gcc $(CFLAGS) -o myprogram myprogram.c
```
2. 在Makefile中直接指定编译器选项:
```
gcc -std=c99 -o myprogram myprogram.c
```
请注意,这些选项只适用于使用gcc编译器的情况。如果你使用其他编译器,可能需要使用不同的选项来指定C99标准。
makefile通用模板
当编写一个通用的 Makefile 模板时,可以使用以下内容作为起点:
```makefile
# 编译器
CC = gcc
# 编译选项
CFLAGS = -Wall -Wextra -std=c99
# 目标文件夹
BUILD_DIR = build
# 源文件夹
SRC_DIR = src
# 源文件后缀
SRC_EXT = c
# 获取所有源文件
SRCS = $(wildcard $(SRC_DIR)/*.$(SRC_EXT))
# 获取所有目标文件
OBJS = $(patsubst $(SRC_DIR)/%.$(SRC_EXT), $(BUILD_DIR)/%.o, $(SRCS))
# 目标可执行文件
TARGET = app
# 默认目标
all: $(TARGET)
# 编译目标文件
$(BUILD_DIR)/%.o: $(SRC_DIR)/%.$(SRC_EXT)
mkdir -p $(BUILD_DIR)
$(CC) $(CFLAGS) -c $< -o $@
# 构建可执行文件
$(TARGET): $(OBJS)
$(CC) $(CFLAGS) $^ -o $@
# 清理生成的文件
clean:
rm -rf $(BUILD_DIR) $(TARGET)
.PHONY: all clean
```
这个模板定义了以下几个变量和规则:
- `CC`:编译器的名称,此处为 `gcc`,你可以根据需要修改为其他编译器。
- `CFLAGS`:编译选项,例如 `-Wall` 和 `-Wextra` 是常见的警告选项,`-std=c99` 指定了 C99 标准。
- `BUILD_DIR`:目标文件夹的名称,可以根据需要修改。
- `SRC_DIR`:源文件夹的名称,可以根据需要修改。
- `SRC_EXT`:源文件的扩展名,此处为 `c`,你可以根据需要修改为其他扩展名。
- `SRCS`:所有源文件的列表。
- `OBJS`:所有目标文件的列表。
- `TARGET`:可执行文件的名称。
- `all`:默认目标,依赖于 `$(TARGET)`。
- `$(BUILD_DIR)/%.o`:用于将源文件编译为目标文件的规则。
- `$(TARGET)`:构建可执行文件的规则。
- `clean`:清理生成的文件的规则。
使用该模板时,将源文件放置在 `src` 文件夹中,然后运行 `make` 命令即可编译生成可执行文件。