Qualcuno può spiegare il significato di $<
e [email protected]
in un Makefile
?
risposta
$<
valuta il primo "prerequisito" nella regola di creazione e [email protected]
valuta il "target" nella regola di creazione.
Ecco un esempio:
file.o : file.c
$(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o [email protected]
In questo caso, $<
saranno sostituiti con file.c
e [email protected]
sarà file.o
.
Questi sono più utili in regole generiche come questo:
%.o : %.c
$(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o [email protected]
Vedi this manual per maggiori informazioni.
Si noti che mentre i due esempi precedenti funzioneranno con GNU Make, non sono portatili. POSIX non definisce le regole% e definisce $
D'altra parte, scrivere Makefile diventa molto più semplice se ti limiti a Fare GNU. (che è portabile a più o meno tutte le piattaforme esistenti) – JesperE
(... in attesa che qualcuno mi dica quali piattaforme GNU rendono non è disponibile su ...) – JesperE
[email protected]
è l'obiettivo della regola corrente. $<
è il nome del primo prerequisito ("origine") della regola corrente.
Così, per esempio:
.c.o:
$(CC) -c $(CFLAGS) -o [email protected] $<
Questo si espanderà ad un qualcosa di comando come:
gcc -c -Wall -o foo.o foo.c
Vedi anche il GNU make manual § 10.5.3, "Automatic Variables".
Cosa succede se si dispone di più file sorgente per un singolo target? – MarcusJ
@MarcusJ Come menzionato nella risposta, '$ <' è il nome del * primo * prerequisito. Puoi seguire il link nella risposta per altre variabili automatiche ('$?', '$ ^', '$ +', '$ |') Che ti daranno qualcosa in più del semplice prerequisito. –
- 1. Cosa sono $ @ e $ <in un Makefile?
- 2. Cosa rappresenta $$, $?, $^Rappresentano in powershell?
- 3. Cosa rappresentano i due punti (:) in JavaScript?
- 4. Three.js - cosa rappresentano le matrici in un oggetto 3D
- 5. Cosa fa "$ (@: H)" in MakeFile?
- 6. Cosa rappresentano queste icone di classi pharo?
- 7. Nei makefile cosa significano CC e LD?
- 8. Tipi di finestre Chrome. Cosa rappresentano?
- 9. Cosa rappresentano i numeri di Planning Poker?
- 10. modelli TeX sillabazione: Che cosa rappresentano
- 11. Colon e $ in makefile
- 12. Cosa significa $ <(segno di dollaro + parentesi triangolare sinistra) in un makefile?
- 13. Cosa fa un simbolo di percentuale in un makefile?
- 14. Che cosa rappresentano esattamente la dimensione e la risposta in un punto chiave SURF?
- 15. Cosa significano $$ @ e il simbolo della pipe in Makefile?
- 16. Cosa fa il doppio simbolo "at" (@@) in un Makefile?
- 17. Cosa significa @: (al simbolo del colon) in un Makefile?
- 18. In PHP, cosa rappresenta "<<<"?
- 19. Decapitalize nomi umani (che rappresentano il 'e -)
- 20. Cosa significa `<< =` in SBT?
- 21. Cosa significa << fare in Python?
- 22. Makefile, Compiling e Linking
- 23. Cosa rappresenta << in python?
- 24. Che cosa significa "<< -" in Ruby?
- 25. Che cosa significa jolly nel makefile?
- 26. Oggetti che rappresentano alberi
- 27. Php cosa significa <<<?
- 28. Quanti millisecondi "lento", "normale" e "veloce" rappresentano in jQuery?
- 29. Cosa rappresentano i segni di dollaro ($) e percentuale (%) nell'assembly intel x86?
- 30. Cosa è statico <E>?
Che fine ha fatto la buona vecchia tradizione di leggere il bel manuale? – Jens
Chi legge documenti di 200 pagine per solo alcune semplici domande? – MarcusJ
Cercare questo in un documento lungo 200 pagine sarebbe facile se GNU Make non lo rendesse difficile. Sul mio sistema, viene fornito con una pagina * man * (si sa, * man * per * manual *) che non spiega nulla di ciò, ma si riferisce a * The GNU Make Manual * senza dirmi come trovarlo. Quindi, in sostanza, Google è la risposta, e l'invio di '$ @' a Google fornisce effettivamente la risposta (con mia sorpresa). – reinierpost