Vai al contenuto

Primario: Sky Slate Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate Marble
Secondario: Sky Slate Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate Marble
Sfondo: Blank Waves Squares Notes Sharp Wood Rockface Leather Honey Vertical Triangles
Corsi di Laurea










ROX @ Unisa - Forum degli studenti di Ingegneria utilizza i cookie. Se prosegui la navigazione accetti il loro uso.    Accetto l'uso dei cookie
-->
Foto

Costruzione Makefile e comando make


  • Effettua l'accesso per rispondere
Questa discussione ha avuto 1 risposta/e

#1
Mik99

Mik99

    Advanced Member

  • Utente
  • StellaStellaStella
  • 206 Messaggi:
Salve ragazzi,
ho bisogno di un grosso aiuto riguardo make\makefile..
ci sto impazzendo da due giorni pieni ma non riesco a capire..
spero che sia un errore stupido altrimenti sto in alto mare..vi spiego :

da prompt mi creo 2 file.c (main.c e stampa.c) e 1 file.h (stampa.h) in cui ci sono i relativi codici:

__main.c__

#include "stampa.h"
#include

int main()
{

stampa();

system("Pause");
return 1;

}

__stampa.c__

#include
#include "stampa.h"

void stampa()
{
printf("Tutto bene per ora!\n");
printf("Proviamo un po'!\n");
}

__stampa.h__

void stampa();

poi sempre da prompt usando il gcc mi posso creare un eseguibile direttamente dai due file.c facendo :

\dev-cpp\bin\gcc.exe main.c stampa.c -o eseguibile  


oppure mi creo prima i due file oggetto, in questo modo:

\dev-cpp\bin\gcc.exe -c main.c 
(e mi creo main.o)

\dev-cpp\bin\gcc.exe -c stampa.c
(e mi creo stampa.o)

e infine creo l'eseguibile mediante linking :

\dev-cpp\bin\gcc.exe main.o stampa.o -o eseguibile
(tutti questi file sono sul desktop,in nessuna cartella particolare)

faccio bene fin qui??

Avrei potuto fare anche questo mediante progetto,facendo si che mi venissero creati tutti i file.o automaticamente..

poi entra in gioco il file di testo Makefile ,che lo salvo sul desktop e in cui scrivo:

#Esempio makefile

eseguibile: main.o stampa.o (scrivo eseguibile perché e' il nome del mio file eseguibile,creato in precedenza,vero??)
gcc -o eseguibile main.o stampa.o

main.o: main.c stampa.h
gcc -c main.c

stampa.o: stampa.c
gcc -c stampa.c

clean:
rm eseguibile main.o stampa.o (oppure *.o)


Quindi il testo scritto nel makefile mi dice :
1° target : creami un eseguibile
2° target (clean) : non ho prerequisiti,per cui passo alla linea di comando..quindi elimino i file.o (e' giusto???)

e se ricompilassi di nuovo,i file.o verrebbero ricreati "come per magia" grazie al primo target..

diciamo che per sommi capi questo e' tutto..
ora dal prompt dovrei richiamarmi make, che a me sta in \dev-cpp\bin\make.exe

quindi cosa devo fare??
proprio in termini pigiatura di tasti..
grazie mille :beg:


No pain no gain

#2
Mik99

Mik99

    Advanced Member

  • Utente
  • StellaStellaStella
  • 206 Messaggi:
up :notworthy:
No pain no gain




Leggono questa discussione 1 utenti

0 utenti, 1 ospiti, 0 utenti anonimi