Variables i arguments de Makefile: una guia completa

Variables I Arguments De Makefile Una Guia Completa



S'utilitza un fitxer de text anomenat 'makefile' per emmagatzemar les ordres per crear projectes de programari. Enllaça, configura i compila automàticament el codi original del projecte mitjançant un fitxer de destinació. Un makefile s'utilitza per crear un objecte i fitxers de destinació a partir d'un fitxer de codi font. Després de l'execució d'un fitxer de destinació, s'executarà el codi del fitxer de codi font i el vostre projecte s'executarà en poc temps. Dins d'aquesta guia, us donarem detalls complets sobre com fer un fitxer makefile amb variables i arguments.

Un makefile bàsic consta de tres parts:







  • Les variables s'etiqueten entitats per emmagatzemar les dades relacionades amb el projecte.
  • Les regles especifiquen com crear un fitxer previst utilitzant les dependències del fitxer make.
  • Els documents que el makefile està dissenyat per generar s'anomenen objectius.

Variables Makefile

Com ja hem descrit, un objecte etiquetat que es pot utilitzar per emmagatzemar les dades es coneix com a variable makefile. El valor d'una variable pot ser un caràcter únic, un valor numèric o una col·lecció de valors. Els títols dels documents d'origen i de destinació, així com les instruccions que s'han d'utilitzar per crear els objectius, són totes dades relatives al procediment de compilació que s'emmagatzemen en variables.



Creeu les variables Makefile

Per definir una variable simple al makefile, l'hauríem de començar amb un títol senzill seguit del signe '=' i el valor que hi emmagatzemarà:



nom_de_variable = valor_de_variable





D'altra banda, és preferible i recomanable provar “:=” en comptes de “=” per obtenir un rendiment ràpid i millor d'un projecte.

nom_de_variable := valor_de_variable



Per exemple, creem un makefile per al projecte C i declarem una variable 'CC'. Aquesta variable emmagatzema el compilador que és executable per a C, és a dir, 'gcc', com a valor. A la quarta línia, creem la variable 'CFLAGS' que s'utilitza per donar avisos mentre està passant el procés de compilació. Això és per millorar l'optimització d'un projecte que esteu executant i per evitar problemes.

Així, la variable 'TARGET' d'aquest fragment de codi s'utilitza per establir el nou fitxer de destinació que es genera després de l'execució d'un fitxer de creació. Durant la creació d'un fitxer de creació, és necessari establir els fitxers d'origen i d'objecte després de configurar un fitxer de destinació. Els fitxers font i objecte també es poden definir mitjançant les variables. Podeu anomenar aquestes variables segons la vostra elecció.

Per exemple, la variable SRCS estableix un fitxer font mentre que la variable OBJS estableix un fitxer d'objecte nou mitjançant la variable SRCS.

CC = gcc
CFLAGS = - Paret
TARGET = Nou
SRCS = principal.c
OBJS = $ ( SRCS:.c=.o )

Utilitzeu les variables Makefile

Després de declarar o definir les variables de makefile, és molt necessari que siguin utilitzables al makefile. Per utilitzar una variable makefile, heu d'utilitzar el signe '$' seguit dels claudàtors '()' o '{}'. Per exemple, utilitzem el '$()' per crear el fitxer executable de destinació. Després de fer aquest pas, el fitxer de destinació podrà respondre.

tots: $ ( OBJECTIU )

Arguments de Makefile

Sempre que es crida al makefile, se li proporciona un valor com a paràmetre que es coneix com a 'argument'. Els arguments s'utilitzen per anul·lar el valor original d'un mutable o per afegir més detalls al makefile en temps d'execució. Per passar els arguments de la línia d'ordres a una variable d'un fitxer makefile, hauríeu d'utilitzar la paraula clau 'make' seguida d'un nom de variable i un valor d'argument que se li passa:

fer nom_de_variable = valor_de_variable

Es pot accedir a aquests paràmetres com a variables ordinàries al fitxer makefile, és a dir, 'Nou' és el valor de l'argument de la variable 'TARGET'.

TARGET = Nou

Exemple: Feu les variables i els arguments

Per demostrar l'ús de variables i arguments al makefile, utilitzem un exemple senzill en C++. Creem un nou fitxer C++ a Notepad++ i afegim una capçalera 'iostream' per utilitzar l'entrada i la sortida en un programa de mostra.

La funció main() comença amb la declaració d'una variable de tipus de caràcter “v”. El flux de sortida estàndard que és 'cout' s'utilitza per mostrar i demanar entrada a l'usuari. En canvi, el flux d'entrada estàndard 'cin' obté un valor d'entrada d'un usuari en temps d'execució i el desa a la variable 'v'. El 'cout' estàndard s'utilitza de nou per mostrar el valor afegit per un usuari en temps d'execució. La instrucció 'retorn 0' finalitza l'execució del programa correctament.

#inclou
int principal ( ) {
char v;
std::cout << 'Introduïu un valor:' ;
std::cin >> en;
std::cout << en << std::endl;
tornar 0 ;
}

Un makefile es genera utilitzant una manera estàndard. La primera variable, 'CXX', declara el compilador que s'utilitzarà per executar el fitxer C++, és a dir, 'g++'. La variable següent s'utilitza per establir els indicadors d'un compilador per evitar problemes.

Ara, el fitxer de destinació s'estableix mitjançant la variable 'TARGET' a 'Nou'. Aquest és un fitxer executable. Després d'això, el makefile defineix el seu fitxer font i objecte mitjançant les variables SRCS i OBJS. Per fer ús de les variables declarades, utilitzem el signe '$' seguit dels claudàtors '()' per crear l'executable de destinació, el fitxer objecte i netejar l'objecte i el fitxer de destinació.

CXX = g++
CXXFLAGS = -std =c++ 11 - Paret
TARGET = Nou
SRCS = main.cpp
OBJS = $ ( SRCS:.cpp=.o )
tots: $ ( OBJECTIU )
$ ( OBJECTIU ) : $ ( OBJS )
$ ( CXX ) $ ( CXXFLAGS ) -O $ ( OBJECTIU ) $ ( OBJS )
% .O: % .cpp
$ ( CXX ) $ ( CXXFLAGS ) -c $ < -O $ @
net:
rm -f $ ( OBJECTIU ) $ ( OBJS )

Després de desar el C++ i el seu fitxer make, inicieu el CMD del vostre sistema, navegueu al directori de treball i executeu la instrucció make de la següent manera. Genera el fitxer objecte 'main.o' i el fitxer de destinació 'New.exe' per al fitxer de codi font. De moment no hem aprovat cap argument per fer les instruccions.

fer

L'execució del fitxer de destinació demanarà entrada a l'usuari. Afegim el caràcter 'h' a la primera execució i 'haha' a la segona execució. Tot i que la variable 'v' només accepta els valors de 'caràcter', el caràcter 'h' de la cadena 'haha' s'emmagatzema i es mostra.

Nou.exe

Executem la instrucció make utilitzant els arguments de la línia d'ordres que es passen a les variables makefile. Per tant, alterem el valor de la variable 'TARGET' i li passem 'Prova'. Després d'això, es genera el fitxer 'Test.exe' i funciona exactament com el fitxer 'New.exe'.

fer OBJECTIU = Prova
Test.exe

Conclusió

Dins d'aquesta guia completa, hem revisat el contingut de makefile un per un. Hem explicat com declarar les variables en un fitxer makefile, com fer-les utilitzables i com modificar-ne el valor en temps d'execució amb l'ajuda d'arguments. Donant suport a la nostra explicació, vam discutir un exemple senzill en C++.