今天写C语言的时候,我突然遇到需要做一个项目.以前没有接触过,通过简单的了解,Windows下可以通过IDE来进行共同编译 vs就是很好的选择.
而我们今天讨论的重点是如何在Linux中进行多文件编译,一般简单的项目会有三个文件 (xxx.c ,xxx.c,xxx.h)其中一个执行程序主要功能,一个描述抽象数据类型的函数,一个进行函数原型的声明,在Linux下,大家都是手动达人,我们在编译的时候是需要把怎么编译都写出来,比如编译顺序,那个文件和那个文件进行链接,那些文件在什么情况下需要重新编译等等,或者一些更加复杂的操作,用来写这些具体操作的文件就是这个项目的makefile.
而且,我们在写好了一个makefile之后就可以自动编译了,只需用一个make命令就行.而且更加建议先学了makefile之后用IDE,因为学习了mmakefile之后你就对其中怎样把编程语言变成可执行程序有了更加深刻的理解,基础更加扎实.好了,接下来我们就来一起看看怎么写Makefile,
我是以c语言作为源码,编译器是Ubuntu 下默认的gcc.
首先我们来聊聊有关程序的编译和链接 无论是 C、 C++、还是 pas,首先要把源文件编译成中间代码文件,在 Windows 下也就是 .obj 文件,UNIX 下是 .o 文件,即 Object File,这个动作叫做编译( compile)。然后再把大量的 Object File合成执行文件,这个动作叫做链接( link),windows下大部分的IDE都将这两个动作结合成一个并且集合到一个快捷键上,这样对初学者友好但是对于深刻理解缺有点缺陷。
Makefile就是一个怎样编译多文件的脚本,我们写好之后在终端下输入make 这个命令就可以开始编译了.
target ... : prerequisites ... command ... ...
形如这样的就是一个Makefile,其中 target 也就是一个目标文件,可以是 Object File,也可以是执行文件。还可以是一个标签( Label