如何编写Makefile使用指定GCC参数编译三个C程序
编写对应的Makefile方案
没问题,我来帮你写这个Makefile,既能复用你指定的编译选项,又能高效编译这三个程序:
# 定义编译器路径 CC = /usr/bin/gcc # 定义编译选项,完全复用你给出的参数 CFLAGS = -pthread -O2 -fmessage-length=0 -pedantic-errors -std=gnu99 \ -Werror -Wall -Wextra -Wwrite-strings -Winit-self -Wcast-align \ -Wcast-qual -Wpointer-arith -Wstrict-aliasing -Wformat=2 \ -Wmissing-include-dirs -Wno-unused-parameter -Wshadow \ -Wuninitialized -Wold-style-definition # 要生成的三个可执行文件列表 TARGETS = abc pqr xyz # 默认目标:编译所有可执行文件 all: $(TARGETS) # 通用编译规则:每个可执行文件依赖对应的.c源文件 $(TARGETS): %: %.c $(CC) $(CFLAGS) $< -o $@ # 清理生成的可执行文件的目标(可选,方便清理) clean: rm -f $(TARGETS)
说明:
- 把编译器和编译选项定义成变量
CC和CFLAGS,后续修改参数或编译器路径时只需要改一处,维护起来更方便 TARGETS变量列出了所有要生成的可执行文件,默认执行make时会编译全部- 通用规则
$(TARGETS): %: %.c是Makefile的模式匹配语法,会自动为每个.c文件生成对应的可执行文件,不用重复写三次编译规则 - 可选的
clean目标可以用来快速清理生成的可执行文件,执行make clean即可
内容的提问来源于stack exchange,提问作者Hyuga Hinata
相关产品推荐
相关产品推荐

