有没有什么排版的网站,郑州安卓app开发,国内十大新闻,展示设计设计万能说明linux自动化构建工具make/makefile 一#xff0c;makefile是什么二#xff0c;如何写makefile三#xff0c;文件的三个时间属性四#xff0c;makefile的推导 一#xff0c;makefile是什么 对于make和makefile#xff0c;简单来说#xff0c;make是一个命令#xff0c;用… linux自动化构建工具make/makefile 一makefile是什么二如何写makefile三文件的三个时间属性四makefile的推导 一makefile是什么 对于make和makefile简单来说make是一个命令用来执行makefile里面编写的编译命令。而makefile(Makefile)是一个文件里面编写了对源文件目标文件的一些相互依赖关系。 举个例子当我们在Linux中写了一个.c的C语言文件时我们通常会在命令行输入 gcc -o 目标文件 源文件 但是如果我们同时要编译好几个文件而且当项目比较庞大时我们还能在命令行输入吗 所以make和makefile可以实现“自动化编译”只需要make一下这个庞大的项目就可以自动编译完成。
二如何写makefile make是一个命令工具是一个解释makefile中指令的命令工具一般来说大多数的IDE都有这个命令比如Delphi的makeVisual C的nmakeLinux下GNU的make。可见makefile都成为了一种在工程方面的编译方法 这里实现一个简单的例子 在Linux下写一个C代码文件 编写makefile 这里的mytest-d表示的是目标文件test.c表示的是要编译的源文件第二行则是编译指令。 这里的 .PHONY: 表示的是将clean修饰为了伪目标表示可以反复执行。
这里做一下演示 再次 make 时则不能再执行。 但是可以多次 make clean 注这里 make 的时候会编译生成可执行文件而要删除生成的可执行文件要 make clean 。这是因为makefile和make形成目标文件时默认从上到下扫描makefile文件默认生成第一个而且只生成一个。 三文件的三个时间属性
根据上面的问题下面来解释一下为什么会出现上述问题。
这是因为第一次make的时候没有可执行文件则make形成可执行文件当第二次make的时候当前的可执行文件的最近修改时间比源文件的最近修改时间新所以不会再编译。 这里介绍一下文件的三个时间分别是 Accsee —文件访问时间 Moify —文件内容修改时间 Change —文件属性修改时间 当对文件的内容做修改时该文件的Modify和Change的时间都会被修改所以当改变文件的属性时修改时间发生了变化再次make时会比源文件的最近修改时间新。
四makefile的推导
看下面的makefile文件内容 这里的processbar依赖main.o和process.o文件这里会继续向下执行找到相应的.o文件然后再倒推回去。