文章目录
- 1.make/Makefile的介绍
- 2.简单编写及使用
- 3.ACM时间
- 4.extern的复习
- 5.多文件的编译
- 5.0复习翻译过程
- 5.1多文件的构成
- 5.2手动编译
- 5.3利用Makefile
1.make/Makefile的介绍
make是一个命令 makefile是一个文件[makefile也对]
之前的学习都没有维护项目结构 当有多个.c文件 先编译哪个后编译哪个 自己没管过 make/Makefile: 自动化的构建项目
编写Makefile的目的:能够自动化的构建项目 可以把我们的源代码编译 自动生成可执行程序
编写Makefile:依赖关系
(小灰灰是灰太郎的儿子 有父子关系)依赖方法
(小灰灰上大学月底给灰太狼要生活费)
2.简单编写及使用
利用编写好的Makefile 可以通过make/make clean进行生成/删除可执行程序
这是一个Makefile文件,用于编译名为hello的C程序。
- 第一行指定了一个目标,即hello。
- 第二行是编译命令,gcc hello.c -o hello,它会使用gcc编译hello.c,并将生成的可执行文件命名为hello。
- 第三行是一个伪目标,即clean,用于定义清除操作。
- 第四行是clean目标下的命令,rm -f hello,它用于删除生成的可执行文件hello。
可以使用命令make
执行该Makefile文件来进行编译和生成可执行文件。如果需要删除可执行文件,可以使用命令make clean
。
执行: Makefile自顶向下扫描文本 只会执行第一对目标文件 想要执行特定文件需要在make后+文件名
.PHONY修饰的目标称为伪目标: 总是被执行的(总是根据依赖关系去执行依赖方法) 理解: 多次执行make hello 会显示: 该文件已为最新文件 而多次执行make clean则没有显示
3.ACM时间
ACM时间
Access: 最近一次访问 因为有些文件经常被访问 所以这个时间经常需要被修改 而频繁修改存在于磁盘上的文件需要耗费时间 所以优化后: 当达到一定访问次数才会修改access
Modify: 最近一次修改文件内容的时间 当文件内容增加/减少引起文件大小变化 – 文件的属性信息也会随之改变
Change: 最近一次修改文件属性的时间
4.extern的复习
extern是什么
extern是C语言中的一个关键字,用于在源文件中声明一个在另一个源文件中定义的变量或函数。它的作用是告诉编译器在其他地方已经定义了这个变量或函数,避免重复定义。
1.在一个源文件中声明一个在另一个源文件中定义的全局变量或函数,以便在当前源文件中使用它们。
2.在一个头文件中声明一个在另一个源文件中定义的全局变量或函数,以便在多个源文件中使用它们。
例子:
// file1.c
int count; // 定义全局变量count
// file2.c
extern int count; // 声明全局变量count
file1.c定义了一个全局变量count,file2.c使用extern声明了这个全局变量,以便在file2.c中使用它。
extern关键字只是一个声明,它并不会分配内存空间
。变量的实际定义和内存分配必须在某个源文件中进行
。另外,如果一个变量在多个源文件中都使用了extern声明,那么它只能在其中一个源文件中进行定义。
5.多文件的编译
5.0复习翻译过程
5.1多文件的构成
5.2手动编译
5.3利用Makefile