Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Domande sui makefile

Linguaggi e sistemi

Moderatori: Foto UtentePaolino, Foto UtenteMassimoB, Foto Utentefairyvilje

0
voti

[1] Domande sui makefile

Messaggioda Foto UtenteAjeieBrazov » 8 giu 2017, 12:29

Girando per il web ho trovato una quantità enorme di informazioni e tutorial sui makefile. Il problema è che molte volte mi pare di trovare delle contraddizioni. La prima che non riesco a capire è questa: la compilazione di tutti i file sorgenti con un goal implicito. Nello specifico ho trovato questi due metodi
Codice: Seleziona tutto
# Compiles all source files
%.o: %.c
        gcc –c –g $< -o $@

Codice: Seleziona tutto
.c.o:
        gcc -c -o $*.o $<

Teoricamente dovrebbero fare la stessa cosa: compilare tutti i sorgenti però sono differenti. A questo punto vorrei sapere se sono entrambi corretti e perché sono scritti in modo diverso.

Grazie per l'attenzione
Avatar utente
Foto UtenteAjeieBrazov
1.455 4 10
---
 
Messaggi: 586
Iscritto il: 23 mag 2017, 21:53

1
voti

[2] Re: Domande sui makefile

Messaggioda Foto Utentesimo85 » 8 giu 2017, 14:55

Non sono un guru di make e makefile ma se vedi la documentazione è spiegato il significato.

https://www.gnu.org/software/make/manual/make.pdf sezione 10.5.3 Automatic Variables.

Magari prenditi anche questo: http://pdf.th7.cn/down/files/1602/The%2 ... 20Book.pdf

O_/
Avatar utente
Foto Utentesimo85
30,8k 7 12 13
Disattivato su sua richiesta
 
Messaggi: 9930
Iscritto il: 30 ago 2010, 4:59

3
voti

[3] Re: Domande sui makefile

Messaggioda Foto Utentexyz » 8 giu 2017, 18:19

Il manuale (se installato) lo puoi leggere con il comando "info make"

Si è la stessa regola scritta in due modi diversi. E' preferibile la prima forma chiamata in inglese «pattern rule», la seconda più vecchia prende il nome di «implicit rule».

Consiglio di parametrizzare i comandi e le opzioni, un Makefile più funzionale è questo:

Codice: Seleziona tutto
CC=gcc
CFLAGS=-g

%.o: %.c
        $(CC) $(CFLAGS) –c $< -o $@
Avatar utente
Foto Utentexyz
5.945 2 4 5
G.Master EY
G.Master EY
 
Messaggi: 1583
Iscritto il: 5 dic 2009, 18:37
Località: Italy Turin

0
voti

[4] Re: Domande sui makefile

Messaggioda Foto UtenteAjeieBrazov » 8 giu 2017, 19:27

Ho provato a scrivere un makefile parametrizzato e devo dire che è un qualcosa di veramente potente. :ok:

Grazie a tutti. :-)
Avatar utente
Foto UtenteAjeieBrazov
1.455 4 10
---
 
Messaggi: 586
Iscritto il: 23 mag 2017, 21:53


Torna a PC e informatica

Chi c’è in linea

Visitano il forum: Nessuno e 4 ospiti