汽车配件响应式网站,东莞电商公司排名,wordpress本地数据,优化搜索曝光次数的方法1 使用场景 在Linux环境下#xff0c;我们通常需要通过命令行来编译代码。例如#xff0c;在使用gcc编译C语言代码时#xff0c;需要使用以下命令。
gcc -o main main.c 使用这种方式编译代码非常吃力#xff0c;每次调试代码都需要重新在命令行下重新编译#xff0c;重复…1 使用场景 在Linux环境下我们通常需要通过命令行来编译代码。例如在使用gcc编译C语言代码时需要使用以下命令。
gcc -o main main.c 使用这种方式编译代码非常吃力每次调试代码都需要重新在命令行下重新编译重复度劳动太多特别是在大型项目中源文件数量较多时需要将可执行程序依赖的源文件一一列举徒增工作量。在这种情况下使用makefile可以帮助我们一键完成编译从而省下很多时间。
2 使用方式
2.1 makefile文件的编写 首先我们需要进行makefile文件编写。在源文件所在目录下创建一个名为makefile或Makefile的文件并按如下示例编写文件。
main:main.c func.cgcc -o main main.c func.c该makefile文件的第一行为一个依赖关系冒号左侧为该依赖关系所生成的文件而冒号右侧为其所依赖的文件。若该makefile文件所在路径下存在main.c和func.c文件则可以在当前目录下使用make命令使makefile执行该依赖关系后的指令将他们编译生成main文件。
make makefile文件中也可以存在多个依赖关系例如下列逐步编译。在这个文件中若直接使用make指令则makefile会以第一行依赖关系为基准先生成main所依赖的main.o。同理由于main.o依赖于main.s那么会先生成main.s以此类推逐步生成。
main:main.ogcc -o main main.s
main.o:main.sgcc -c main.s -o main.o
main.s:main.igcc -S main.i -o main.s
main.i:main.cgcc -E main.c -o main.i 这样做的好处是可以控制makefile自动编译的编译进度。假设我们只需要生成其中的main.o文件我们可以通过以下指令获得。那么makefile只会编译到main.o而不会继续向后生成main。
make main.o 事实上直接使用 make 指令就相当于直接执行 makefile 文件中的第一个依赖关系。
2.2 伪目标 使用 makefile 时为了避免重复编译makefile 会判断所执行的依赖关系是否更新。若源文件未更新则不会执行依赖关系从而提高编译效率。 若想强制执行则需要将该依赖关系设为伪目标如下。
.PHONY:main
main:main.cgcc -o main main.c 伪目标多用于删除已生成的文件如下其中 clean: 同样为依赖关系。
main:main.cgcc -o main main.c.PHONY:clean
clean:rm -f main 这样我们就可以使用 makefile 实现快速编译和删除了。
make clean