编写一个GCC编译脚本可以帮助你自动化编译过程,特别是当你有多个源文件或者需要设置特定的编译选项时。以下是一个简单的示例,展示了如何编写一个GCC编译脚本。
假设你有一个项目,包含以下文件:
main.cutils.cutils.h
你可以创建一个名为 build.sh 的脚本来编译这个项目。
#!/bin/bash
# 设置编译器
CC=gcc
# 设置编译选项
CFLAGS=-Wall -g
# 设置目标文件和可执行文件
TARGET=myapp
SRCS=main.c utils.c
OBJS=$(SRCS:.c=.o)
# 编译规则
$(TARGET): $(OBJS)
$(CC) $(CFLAGS) -o $@ $^
# 编译每个源文件生成对应的目标文件
%.o: %.c
$(CC) $(CFLAGS) -c $< -o $@
# 清理规则
clean:
rm -f $(OBJS) $(TARGET)
# 默认规则
all: $(TARGET)
解释
-
设置编译器和编译选项:
CC=gcc CFLAGS=-Wall -g这里设置了编译器为
gcc,并添加了一些常用的编译选项-Wall(显示所有警告)和-g(包含调试信息)。 -
设置目标文件和可执行文件:
TARGET=myapp SRCS=main.c utils.c OBJS=$(SRCS:.c=.o)这里定义了目标可执行文件
myapp,源文件列表main.c和utils.c,以及通过替换.c为.o得到的目标文件列表main.o和utils.o。 -
编译规则:
$(TARGET): $(OBJS) $(CC) $(CFLAGS) -o $@ $^这条规则表示如何从目标文件生成最终的可执行文件。
-
编译每个源文件生成对应的目标文件:
%.o: %.c $(CC) $(CFLAGS) -c $< -o $@这是一条模式规则,用于将每个
.c文件编译成对应的.o文件。 -
清理规则:
clean: rm -f $(OBJS) $(TARGET)这条规则用于删除生成的目标文件和可执行文件,以便重新编译。
-
默认规则:
all: $(TARGET)这条规则表示默认情况下要编译生成目标可执行文件。
使用脚本
- 将上述内容保存为
build.sh。 - 赋予脚本执行权限:
chmod +x build.sh - 运行脚本:
./build.sh
这样,你就可以通过运行 ./build.sh 来编译你的项目了。如果你想清理生成的文件,可以运行 ./build.sh clean。
以上就是关于“GCC编译脚本怎么写”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm