EnglishFranceseSpagnolo

Favicon di OnWorks

makepp_builtin - Online nel cloud

Esegui makepp_builtin nel provider di hosting gratuito OnWorks su Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS

Questo è il comando makepp_builtin che può essere eseguito nel provider di hosting gratuito OnWorks utilizzando una delle nostre molteplici workstation online gratuite come Ubuntu Online, Fedora Online, emulatore online Windows o emulatore online MAC OS

PROGRAMMA:

NOME


makepp_builtin -- Regole integrate per makepp

DESCRIZIONE


Makepp potrebbe essere in grado di capire come compilare e collegare il tuo programma anche se specifichi
nessuna regola (o se non hai nemmeno un Makeppfile). Dopo ogni Makeppfile è
caricato, makepp carica anche una serie di regole predefinite. (Queste regole sono speciali in quanto
non sovrascrivere nessun'altra regola nel Makeppfile.) Viene memorizzato il database delle regole predefinito
nel file "makepp_builtin_rules.mk" nella distribuzione di makepp o nella directory della libreria, quindi
puoi sempre guardarlo per vedere esattamente quali sono le regole predefinite.

Le regole integrate di Makepp sono quasi le stesse di GNU make, tranne per il fatto che non ha
regole per alcuni dei rari linguaggi per cui GNU ha regole. (Questo è deliberato; io
spesso ha avuto problemi con GNU make su diversi progetti che hanno riutilizzato accidentalmente alcuni di
i suffissi che GNU fa assegnare a quei linguaggi rari.) Le regole usano lo stesso
variabili come fanno GNU, con alcune aggiunte possibilmente utili. Makepp è più intelligente di GNU
fare per dedurre quale compilatore usare e quali altri oggetti e librerie collegare
pollici

Predefinito variabile valori
Makepp fornisce valori predefiniti per un numero di variabili. La maggior parte di questi sono in genere
utilizzati nelle regole e sono effettivamente utilizzati nelle regole predefinite. I loro valori possono essere sovrascritti
assegnando a queste variabili nel tuo Makeppfile o sulla riga di comando.

Queste variabili sono documentate in "Variabili predefinite" in makepp_variables. Se hai
qualsiasi domanda su cosa valuta una variabile, puoi sempre inserire una linea come entrambe
di queste righe nel tuo Makeppfile:

fittizio := $(stampa $(CC))
&echo -- $(CC) # Deve essere rientrato meno della regola precedente.

che stampa semplicemente il valore della variabile "$(CC)" quando viene caricato il Makeppfile.
(Per inciso, questo è un modo utile per eseguire il debug di qualsiasi espressione che non sei sicuro che sia
Giusto.)

compilazione norme
In forma semplificata, ecco approssimativamente come appaiono le regole di compilazione. Se tu
modificare i valori di una qualsiasi delle variabili indicate, il comando di compilazione viene modificato come
previsto.

#
# Per i programmi C:
#
%.o: %.c
$(CC) $(CFLAGS) $(CPPFLAGS) -c $(ingresso) -o $(uscita)

#
# Per i programmi C++:
#
%.o: %.cxx # e anche %.cc, %.cpp, %.c++ e %.C
$(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $(ingresso) -o $(uscita)

#
# Per i programmi Fortran:
#
%.di
$(FC) $(FFLAGS) -c $(ingresso) -o $(uscita)

#
# Yacc e Lex:
#
%.c: %.a
$(YACC) $(YFLAGS) $(ingresso)
&mv -f y.tab.c $(output)

%.c: %.l
$(LEX) $(LFLAGS) -t $(ingresso) -o $(uscita)

Se sei curioso di conoscere i dettagli esatti, puoi guardare nel file
makepp_builtin_rules.mk nella distribuzione makepp.

Link norme
Makepp sa anche come collegare i programmi. Makepp cerca di essere più intelligente del
standard Unix fare quando si tratta di capire un comando di collegamento. Supponiamo che tu stia provando
per costruire il programma di destinazione "xyz". Makepp proverà a compilarlo da "xyz.o", e
(a differenza del make Unix standard) tenterà anche di dedurre se altri oggetti o
le biblioteche devono essere collegate.

La regola del collegamento è simile a questa:

xyz: $(infer_objects xyz.o, *.o)
$(infer_linker $(input)) $(input) $(LDFLAGS) $(LDLIBS) $(LIBS) -o $(output)

"$(infer_objects)" tenta di dedurre quali altri file ".o" devono essere collegati in base a
quali file ".h" sono inclusi.

Il "linker dedotto" è una magia speciale che si trasforma in "$(CC)" se tutte le fonti
sono codice C, "$(CXX)" se una delle fonti è C++ o "$(F77)" se una delle fonti è
Fortran.

Svolta MENO , il incassato norme
Se non ti piacciono le regole integrate, non usarle. Se non funzionano per te, il tuo
build è probabilmente sufficientemente complicato da richiedere il tuo Makeppfile personalizzato
comunque.

Per disattivare le regole integrate, puoi aggiungere una riga come questa al tuo Makeppfile:

makepp_no_builtin = 1

Se le usi, ma non le regole del linker integrate abbastanza costose, puoi trasformarle
via con:

makepp_no_builtin_linker = 1

Per compatibilità con le versioni precedenti, makepp disattiva anche le sue regole predefinite se lo includi
riga da qualche parte nel tuo Makeppfile:

.SUFFISSI:

Puoi disattivare le regole integrate per ogni Makeppfile nell'intera build specificando il
Opzione "--no-builtin-rules" sulla riga di comando.

Usa makepp_builtin online usando i servizi onworks.net


Server e workstation gratuiti

Scarica app per Windows e Linux

Comandi Linux

Ad