如何编写Makefile构建共享同一头文件的两个独立程序
编写Makefile分别编译两个共用头文件的C程序
下面是满足需求的Makefile示例,能分别编译sharedprocess1.c和sharedprocess2.c生成独立可执行文件,同时自动处理头文件依赖:
# 定义编译器和编译参数 CC = gcc CFLAGS = -Wall -Wextra -g # 定义两个可执行文件目标 TARGETS = sharedprocess1 sharedprocess2 # 默认目标:编译所有程序 all: $(TARGETS) # 编译第一个程序,依赖对应的源文件和头文件 sharedprocess1: sharedprocess1.c shared.h $(CC) $(CFLAGS) -o $@ $< # 编译第二个程序,依赖对应的源文件和头文件 sharedprocess2: sharedprocess2.c shared.h $(CC) $(CFLAGS) -o $@ $< # 清理生成的可执行文件 clean: rm -f $(TARGETS)
使用说明
- 编译第一个程序:执行
make sharedprocess1,生成可执行文件sharedprocess1,运行时输入./sharedprocess1 - 编译第二个程序:执行
make sharedprocess2,生成可执行文件sharedprocess2,运行时输入./sharedprocess2 - 一次性编译两个程序:执行
make或make all - 清理生成的文件:执行
make clean
规则解释
CC和CFLAGS定义了编译器和编译选项,-Wall -Wextra开启常见警告,-g生成调试信息(可根据需求调整)- 每个可执行文件目标明确指定了依赖的源文件和头文件,当
shared.h修改时,会自动重新编译对应的程序 $@代表当前目标文件名,$<代表第一个依赖文件,简化了编译命令的写法
内容的提问来源于stack exchange,提问作者mistahwhite
相关产品推荐
相关产品推荐

