vedo in Linux queste cose, ma che cosa è ?:Quali sono makefiles - rendere installare
./configure
make
make install
ecc ecc
vedo in Linux queste cose, ma che cosa è ?:Quali sono makefiles - rendere installare
./configure
make
make install
ecc ecc
make
fa parte del sistema di generazione comunemente usato nei sistemi di tipo unix - binutils.
Guarda file make che contengono informazioni di configurazione e costruiscono obiettivi.
In particolare -
make
con l'obiettivo di generazione predefinito. Generalmente crea l'app.make
con il target di build install
. Installa normalmente l'app.Perché il downvote? –
@Paul Tomlin - di cosa stai parlando? – Oded
Oh, immagino che fosse invertito. Eri -1 quando ho fatto quella domanda. –
configure
controlla se si dispone di tutti i prerequisiti/dipendenze per creare il software.
make
esegue la compilazione effettiva.
make install
installa il software nella posizione corretta.
Make si occupa di eseguire il set (a volte molto complesso) di istruzioni e comandi necessari per creare il controllo del codice sorgente in un file eseguibile o libreria compilato.
make è un programma di utilità che crea automaticamente i programmi eseguibili e le librerie dal codice sorgente
Si tratta essenzialmente di un sistema di compilazione.
./configure
controlla se si dispone di tutte le dipendenze richieste e crea il Makefile.
make
compila il software utilizzando le regole del Makefile.
make install
sposta il software nella posizione corretta nel filesystem.
Non è "fondamentalmente" un sistema di costruzione. È un sistema di costruzione. –
./configure
è un programma che esamina la configurazione del sistema e crea alcune delle dipendenze del sistema per il programma. make
è un programma che guarda il tuo Makefile
(che è stato probabilmente costruito da configure
) e usa le regole lì per costruire il tuo programma. Lo Makefile
può avere più "target" che sono set di regole per fare cose diverse: l'impostazione predefinita è in genere solo per compilare e collegare il programma. Quando dici make
senza argomenti, esegue la destinazione predefinita. Quando dici make install
stai usando il target install
, che di solito installa i binari o le librerie create dalla destinazione predefinita nelle loro posizioni finali. clean
è un altro obiettivo di Makefile comune che elimina tutti i file generati come i file oggetto intermedi.
C'è anche make clean
Ecco un buon riferimento: http://makepp.sourceforge.net/1.19/makepp_tutorial.html
in nessun posto nel documento di riferimento è "/ pulito" menzionato. Inoltre, stai dicendo che "/ clean" è un comando o un obiettivo? Preso alla lettera, non è né l'uno né l'altro. Quando si forniscono risposte tecniche è necessario essere precisi. –
Mi scuso per non essere più preciso. Ecco un esempio di un semplice file make che ho inviato per un progetto scolastico che dovevo fare (oltre a del codice, che può essere ignorato) ... puoi trovare l'esempio nel file "makefile". Come ho creato il makefile, puoi quindi utilizzare "/ clean" che rimuoverà il file oggetto generato da "/ make". Ciò richiederebbe un aggiornamento per una compilazione più complicata che implichi il collegamento di codice oggetto con l'applicazione, ma illustra il concetto di base di ciò di cui stavo parlando. http://www.download.bigsistechnologies.com/csc22001p1_burke.tar.gz –
Cosa sono le barre iniziali su '/ make' e'/clean' ?? – reinierpost
'./configure' è uno script di shell che è portabile su più sistemi Unix (Linux, Solaris, ecc). './configure' fa alcune cose: testare l'ambiente di costruzione, correggere problemi di portabilità, controllare altri software opzionali, verificare dove si desidera installare il pacchetto software, ecc. Puoi scoprire quale tipo di opzioni possono essere configurate da './configure --help'. Basta invocare './configure' per configurare il pacchetto con qualsiasi cosa consideri predefinita. Il file di output principale da eseguire './configure' è in genere un file chiamato 'Makefile' che è le istruzioni di build/install/uninstall combinate per il pacchetto software.
'make' usa il 'Makefile' per creare il target predefinito che di solito è l'intera raccolta di cose che devono essere costruite.
"make install" utilizza il "Makefile" per creare il target "install" che installa il software.
Ho trovato questo fantastico articolo (Comprensione del software Installazione configura, crea, installa) che va in dettaglio su come configurare, fare e fare l'installazione funziona. Non troppo superficiale e né troppo profondo, quanto basta per rendere confortevole l'installazione di Linux. http://www.codecoffee.com/tipsforlinux/articles/27.html
La domanda di Anotther è il motivo per cui lo sviluppatore non accetta, vedo che molti software mi fanno compilare da solo? – Snoob
Linux gira su molte piattaforme diverse (diverse CPU, architetture, hardware, versioni di OS/kernel, ecc.) - non sarebbe pratico fornire binari pre-compilati per la miriade di possibili configurazioni esistenti. –
Ci sono molti binari precompilati. Di solito finiscono con .deb o .rpm. Se si utilizza una distribuzione come Ubuntu, è possibile ottenere la maggior parte del software precompilato dal repository. –