Учебник по MakefileУчебные пособия

Published on 2023-04-20 00:10:05 · 中文 · English · بالعربية · Español · हिंदीName · 日本語 · 中文繁體

Makefile - это инструмент для сборки программ, который работает на Unix, Linux и их разновидностях. Это помогает упростить построение программных исполняемых файлов, для которых могут потребоваться различные модули. Чтобы определить, как модуль должен быть скомпилирован или перекомпилирован, make нуждается в помощи пользовательского makefile. Этот учебник улучшит ваше понимание структуры и полезности makefile.
Компиляция файлов исходного кода может быть утомительной, особенно когда вам нужно включить несколько исходных файлов и вводить команду compile каждый раз, когда вам нужно скомпилировать. Makefile - это решение для упрощения этой задачи.
Makefiles - это специально отформатированные файлы, которые помогают автоматизировать построение и управление проектами.
Например, предположим, что у нас есть следующие исходные файлы.
главная.cpp Здравствуйте.cpp факториал.cpp функции.h
главная.cpp
Вот код для основного.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;
}
Здравствуйте.cpp
Код, приведенный ниже, предназначен для привет.cpp исходных файлов-
#include <iostream>
using namespace std;
#include "functions.h"
void print_hello(){
   cout << "Hello World!";
}
факториал.cpp
Код факториального.cpp выглядит следующим образом:
#include "functions.h"
int factorial(int n){
   
   if(n!=1){
      return(n * factorial(n-1));
   } else return 1;
}
функции.h
Вот код для fnctions.h-
void print_hello();
int factorial(int n);
Простой способ скомпилировать файл и получить исполняемый файл - выполнить команду-
gcc  main.cpp hello.cpp factorial.cpp-o hello
Эта команда генерирует привет двоичный. В этом примере у нас есть только четыре файла, и мы знаем порядок вызовов функций. Поэтому можно ввести приведенную выше команду и подготовить окончательный двоичный файл.
Однако для больших проектов с тысячами файлов исходного кода поддержание двоичных сборок становится затруднительным.
Команда make позволяет управлять большими программами или группами программ. Когда вы начнете писать большие программы, вы заметите, что перекомпиляция больших программ занимает больше времени, чем перекомпиляция коротких программ. Кроме того, вы заметите, что обычно вы обрабатываете только небольшую часть программы, например, одну функцию, в то время как большая часть остальной части программы не меняется.
В следующих разделах мы увидим, как подготовить makefile для нашего проекта.