MakeFile en C++ y sus aplicaciones

Dado un programa C++ y la tarea es romper todo el programa en forma de Makefile.
Básicamente se utiliza para crear un archivo .cpp y un archivo .h para cada clase/función y sus funcionalidades y luego vincularlos a través de un comando Makefile disponible en C++.

ventajas:

  • Hace que los códigos sean más concisos y claros para leer y depurar.
  • No es necesario compilar el programa completo cada vez que realiza un cambio en una funcionalidad o una clase. Makefile compilará automáticamente solo aquellos archivos en los que se hayan producido cambios.
  • Generalmente, en códigos o proyectos largos, Makefile se usa ampliamente para presentar el proyecto de manera más sistemática y eficiente.

Ejemplo: Cree un programa para encontrar el factorial y la multiplicación de números e imprímalo.

Camino Tradicional

// Program to calculate factorial and
// multiplication of two numbers.
#include<bits/stdc++.h>
using namespace std;
  
// Function to find factorial
int factorial(int n)
{
    if (n == 1)
        return 1;
    // Recursive Function to find 
    // factorial
    return n * factorial(n - 1);
}
  
// Function to multiply two numbers
int multiply(int a, int b)
{
    return a * b;
}
  
// Function to print
void print()
{
    cout << "makefile" << endl;
}
  
// Driver code
int main()
{
    int a = 1;
    int b = 2;
    cout << multiply(a, b) << endl;
    int fact = 5;
    cout << factorial(5) << endl;
    print();
    return 0;
}

Producción:

2
120
makefile

Use Makefile para ejecutar el programa anterior:

  • Nombre del archivo: principal.cpp

    #include <bits/stdc++.h>
      
    // Note function.h which has all functions
    // definations has been included
    #include "function.h"
      
    using namespace std;
      
    // Main program
    int main()
    {
        int num1 = 1;
        int num2 = 2;
        cout << multiply(num1, num2) << endl;
        int num3 = 5;
        cout << factorial(num3) << endl;
        print();
    }
  • Nombre del archivo: imprimir.cpp

    #include <bits/stdc++.h>
      
    // Definition of print function is
    // present in function.h file
    #include "function.h"
    using namespace std;
      
    void print()
    {
        cout < "makefile" << endl;
    }
  • Nombre del archivo: factorial.cpp

    #include <bits/stdc++.h>
      
    // Definition of factorial function
    // is present in function.h file
    #include "function.h"
    using namespace std;
      
    // Recursive factorial program
    int factorial(int n)
    {
        if (n == 1)
            return 1;
        return n * factorial(n - 1);
    }
  • Nombre del archivo: multiplicar.cpp

    #include <bits/stdc++.h>
      
    // Definition of multiply function 
    // is present in function.h file
    #include "function.h"
    using namespace std;
      
    int multiply(int a, int b)
    {
        return a * b;
    }
  • Nombre del archivo: funciones.h

    #ifndef FUNCTIONS_H
    #define FUNCTIONS_H
      
    void print();
    int factorial(int);
    int multiply(int, int);
      
    #endif

Comandos para compilar y ejecutar el programa anterior:

Open Terminal and type commands:
g++ -c main.cpp
g++ -c print.cpp
g++ -c factorial.cpp
g++ -c multiply.cpp
g++ -o main main.o print.o factorial.o multiply.o
./main

Note: g++ -c filename.cpp is used to create object file.

makefile

Publicación traducida automáticamente

Artículo escrito por krikti y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *