网站做系统叫什么,iis 网站打不开 建设中,wordpress删了重装,虾皮跨境电商app下载创作不易#xff0c;本篇文章如果帮助到了你#xff0c;还请点赞 关注支持一下♡#x16966;)!! 主页专栏有更多知识#xff0c;如有疑问欢迎大家指正讨论#xff0c;共同进步#xff01; #x1f525;c系列专栏#xff1a;C/C零基础到精通 #x1f525; 给大… 创作不易本篇文章如果帮助到了你还请点赞 关注支持一下♡)!! 主页专栏有更多知识如有疑问欢迎大家指正讨论共同进步 c系列专栏C/C零基础到精通 给大家跳段街舞感谢支持ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ c语言内容
专栏c语言之路重点知识整合
【c语言】全部知识点总结 目录 Makefile 介绍源代码的编译过程 Makefile 的基本语法示例 Makefile 介绍
Makefile 是被用于自动化构建过程的脚本文件对一个项目具有高可用性和可重用性。
Makefile 描述了如何从一个或多个源文件编译、链接和生成目标文件或可执行文件。
可以通过使用 make 命令方便地编译和重新编译项目而无需手动执行每个构建步骤。
源代码的编译过程
在我们编写完代码之后的.c文件被称为源代码文件此时是代码的预处理期。
编译期在我们按下调试键后编译软件中的编译器会将我们的源代码进行编译成为汇编语言如果我们在书写代码中有语法等错误在编译时编译器将不会通过会报出以C为开头的错误编译compile即为编译错误。汇编期在经过汇编期后汇编语言会由汇编器转化为真正的机器语言即01指令生成.obj文件目标文件通过对代码调试反汇编可以看到我们的一句代码在机器语言中对应了很多行的机器语言。连接期通过连接器计算机将一些.obj文件整合到一起通过头文件库函数连接到一起打包组成了最终的exe可执行文件。如果出现了LNK错误即是连接期出现了问题可能是main函数出现错误一个项目没有或者有多个main函数或者缺少头文件。执行期即执行该exe文件。
Makefile 的基本语法
Makefile 一般包含 显式规则显式规则说明如何生成一个或多个的目标文件。明显指出要生成的文件文件的依赖文件生成的命令。 TARGET 变量定义了最终生成的可执行文件的名称。 变量定义在 Makefile 中可以定义一系列的变量变量一般都是字符串当 Makefile 被执行时变量的值会被扩展到相应的引用位置上。 文件指示其包括了三个部分一个是在一个 Makefile 中引用另一个 Makefile就像 C 语言中的 include 一样另一个是指根据某些情况指定 Makefile 中的有效部分就像 C 语言中的预编译#if 一样还有就是定义一个多行的命令。 注释Makefile 中只有行注释和 UNIX 的 Shell 脚本一样使用“#”字符 CC 变量定义了要使用的编译器在这里是 gcc。 SRCS 变量包含所有的源文件OBJS 变量则是从 SRCS 变量中的 .c 扩展名替换为 .o 得到的代表目标文件。 all 是默认目标当运行 make 命令时它会首先尝试构建这个目标。all 依赖于 $(TARGET)即它会尝试构建可执行文件。 $(TARGET): $(OBJS) 描述了如何从目标文件生成可执行文件。使用了 $(CC) 变量定义的编译器并将所有的目标文件链接起来生成可执行文件。 %.o: %.c 描述了如何从 C 源文件编译生成目标文件。 代表依赖项源文件 代表依赖项源文件 代表依赖项源文件 代表目标目标文件。 clean 目标是一个常用的清理规则用于删除生成的目标文件和可执行文件。使用 make clean 命令执行 示例
main.c 生成可执行文件 app 的 makefile 文件示例
# 定义gcc编译器
CCgcc # 定义源文件和目标文件
SRCSmain.c
OBJS$(SRCS:.c.o)
TARGETapp# 默认目标all
all: $(TARGET)
# 链接目标文件以生成可执行文件
$(TARGET): $(OBJS) $(CC) $(OBJS) -o $(TARGET)
# 从源文件编译生成目标文件
%.o: %.c $(CC) -c $ -o $
# 清除生成的目标文件和可执行文件
clean: rm -f $(OBJS) $(TARGET)CCgcc
CFLAGS-Wall -g # 添加编译选项 # 使用通配符获取所有.c文件
CFILES$(wildcard *.c)
OBJS$(CFILES:.c.o) # 默认目标all
all: app # 链接目标文件以生成可执行文件
app: $(OBJS) $(CC) $(CFLAGS) -o app $(OBJS) # 从源文件编译生成目标文件
%.o: %.c $(CC) $(CFLAGS) -c $ -o $ # 清除生成的目标文件和可执行文件
clean: rm -rf hello *.o大家的点赞、收藏、关注将是我更新的最大动力 欢迎留言或私信建议或问题。
大家的支持和反馈对我来说意义重大我会继续不断努力提供有价值的内容如果本文哪里有错误的地方还请大家多多指出(●◡●)