2010-10-12 14 views
7

vedo in Linux queste cose, ma che cosa è ?:Quali sono makefiles - rendere installare

./configure 
make 
make install 

ecc ecc

+1

La domanda di Anotther è il motivo per cui lo sviluppatore non accetta, vedo che molti software mi fanno compilare da solo? – Snoob

+1

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. –

+0

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. –

risposta

8

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 -

  • ./configure - questo è uno script che imposta l'ambiente per la costruzione
  • make - chiama make con l'obiettivo di generazione predefinito. Generalmente crea l'app.
  • make install - chiama make con il target di build install. Installa normalmente l'app.
+0

Perché il downvote? –

+0

@Paul Tomlin - di cosa stai parlando? – Oded

+0

Oh, immagino che fosse invertito. Eri -1 quando ho fatto quella domanda. –

5

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.

3

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 (software)

make è un programma di utilità che crea automaticamente i programmi eseguibili e le librerie dal codice sorgente

4

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.

+2

Non è "fondamentalmente" un sistema di costruzione. È un sistema di costruzione. –

11

./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.

0

C'è anche make clean

Ecco un buon riferimento: http://makepp.sourceforge.net/1.19/makepp_tutorial.html

+0

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. –

+0

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 –

+0

Cosa sono le barre iniziali su '/ make' e'/clean' ?? – reinierpost

1

'./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.

1

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

Problemi correlati