makefile简单编写

Aki 发布于 2023-01-16 265 次阅读


使用C、C++编写可执行程序,首先要把源文件编译成中间代码文件,Linux下是 .o 文件,即 Object File,这个动作叫做编译(compile)。然后再把大量的Object File合成执行文件,这个动作叫作链接(link)

一个项目,拥有成百上千的源程序文件,编译链接这些源文件都是由规则的,Makefile闪亮登场!Makefile确定整个工程的编译规则,只需要一个make命令,就可以实现“自动化编译”。make是一个解释makefile中指令的命令工具,一般来说,大多数的IDE都有这个命令,比如:Delphi的make,Visual C++的nmake,Linux下GNU的make。

现在再来了解一下Make的工作原理

  • 通常在一个项目里,我们的规则是:
  • 1)如果这个工程没有编译过,那么我们的所有C文件都要编译并被链接。
  • 2)如果这个工程的某几个C文件被修改,那么我们只编译被修改的C文件,并链接目标程序。
  • 3)如果这个工程的头文件被改变了,那么我们需要编译引用了这几个头文件的C文件,并链接目标程序。

首先是Makefile的规则:

target … : prerequisites …
          command …

1.target也就是一个目标文件,可以是Object File,也可以是执行文件。还可以是一个标签(Label),对于标签这种特性,就不细讲。
2.prerequisites就是,要生成那个target所需要的文件或是目标。
3.command也就是make需要执行的命令。(任意的Shell命令)
main : main.cpp
       g++ main.cpp -o main -Wall -O2 -I ./ 
clean :
       rm -rf  main 

以上就是两个最简单的makefile编写