Makefile教程

Makefile 教程

Makefile 是一种程序构建工具,可在 Unix、Linux 及其风格上运行。它有助于简化可能需要各种模块的程序可执行文件的构建。为了确定模块需要如何编译或重新编译,make需要用户定义的 makefile 的帮助。本教程将增强您对 makefile 的结构和实用程序的了解。
编译源代码文件可能很累人,尤其是当您必须包含多个源文件并在每次需要编译时键入编译命令时。 Makefile 是简化此任务的解决方案。
Makefile 是特殊格式的文件,可帮助自动构建和管理项目。
例如,假设我们有以下源文件。
main.cpp hello.cpp factorial.cpp functions.h
main.cpp
以下是 main.cpp 源文件的代码-
#include <iostream>
using namespace std;
#include "functions.h"
int main(){
   print_hello();
   cout << endl;
   cout << "The factorial of 5 is " << factorial(5) << endl;
   return 0;
}
hello.cpp
下面给出的代码用于 hello.cpp 源文件-
#include <iostream>
using namespace std;
#include "functions.h"
void print_hello(){
   cout << "Hello World!";
}
factorial.cpp
factorial.cpp 的代码如下-
#include "functions.h"
int factorial(int n){
   
   if(n!=1){
      return(n * factorial(n-1));
   } else return 1;
}
functions.h
以下是 fnctions.h 的代码-
void print_hello();
int factorial(int n);
编译文件并获得可执行文件的简单方法是运行命令-
gcc  main.cpp hello.cpp factorial.cpp-o hello
此命令生成 hello 二进制文件。在这个例子中,我们只有四个文件,而且我们知道函数调用的顺序。因此,键入上述命令并准备最终二进制文件是可行的。
但是,对于拥有数千个源代码文件的大型项目,维护二进制构建变得困难。
make 命令允许您管理大型程序或程序组。当您开始编写大型程序时,您会注意到重新编译大型程序比重新编译短程序需要更长的时间。此外,您会注意到您通常只处理程序的一小部分(例如单个函数),而其余程序的大部分都没有改变。
在接下来的部分中,我们将看到如何为我们的项目准备 makefile。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4