Come imparo il collegamento di compilazione, makefile velocemente? Qualche raccomandazione sui libri? [chiuso]

5

Sono molto bravo a programmare in C ++ ma quando si arriva al collegamento e agli altri elementi importanti mi sento molto ignorante. Voglio imparare allegro senza perdere tempo. Quindi, per favore suggerisci un libro o una risorsa per imparare i concetti sopra menzionati. Grazie mille in anticipo.

    
posta Alexander Suraphel 13.11.2010 - 20:55
fonte

5 risposte

4

Non vorrei passare il tempo su nessun libro. Non c'è davvero molta conoscenza qui.

Utilizza Wikipedia, Google e unix man in

  1. Capire cosa fa è (sintetizzatore basato su dipendenza da file driven stamp di qualsiasi cosa). Usa il manuale di GNU Make come riferimento man mano che procedi. Le importanti flag di GNU Make da tenere presente sono '-p', '-n' e '-d'
  2. Leggi informazioni sui flag gcc / g ++ per la compilazione / collegamento di modalità debug / ottimizzate / debitamente ottimizzate a 32/64 bit. Leggi cosa sono LD_LIBRARY_PATH, LD_PRELOAD, codice indipendente di posizione e rpath.
  3. Scopri cosa sono nm , c ++ filt , stringhe e ldd . Dovrai usarli per risolvere i problemi di build.

Questo è più o meno.

    
risposta data 14.11.2010 - 20:44
fonte
2

Comprendi crea e sarà il tuo migliore amico.

Make è una specie di sistema di flusso di dati . In un sistema di flusso di dati, l'applicazione viene creata dai componenti, collegando le porte di input e di output, dove inviano messaggi (pacchetti di dati o, a volte, solo trigger), quindi formano una rete di elaborazione. Vedi Wikipedia programmazione del flusso di dati e programmazione basata sul flusso articoli.

Nel caso di make, i componenti sono le unità di compilazione, i messaggi sono cambiamenti di file (origine, oggetto, altra risorsa). Quando un file cambia, attiva un componente (un nodo di compilazione), quindi il componente, dopo aver eseguito il suo compito, producendo output e attivando altri componenti, che stanno facendo lo stesso modo, fino a quando la catena di messaggi raggiunge il componente finale (sink), che produce a.out.

Di fronte ad altre architetture di dataflow, make non funziona continuamente. devi avviarlo, quando senti che un file è cambiato e attiverà un componente. Se esegui make quando non ci sono file modificati, quindi nessun componente verrà attivato, dice un messaggio "niente da fare" e si interrompe.

Se ci sono percorsi paralleli nella rete di flusso di dati, make può eseguire i componenti parallelamente, provare l'opzione make -j . (È un effetto interessante che lo stesso G ++ non utilizzi più processori, ma lo fa con l'aiuto di make.)

Creare un buon makefile non è banale, ma se pensi di fare come un costruttore di applicazioni per il flusso di dati, può essere uno strumento molto efficace.

    
risposta data 27.12.2010 - 15:40
fonte
1

Non devi imparare autoconf e creare file e tutto il resto per iniziare sotto Linux. Puoi comunque utilizzare un IDE come Eclipse, che genererà automaticamente tutti i file autoconf.

Alla fine, probabilmente vorrà voler impararlo, ma non devi farlo se sei appena agli inizi. Eclipse sarà in grado di realizzare il 90% delle cose che ti servono tramite la sua GUI e le sue procedure guidate, ecc.

Ad esempio, questa pagina spiega come iniziare con Allegro in Eclipse. Quella pagina sembra fare alcune supposizioni sulla tua conoscenza di Linux, ma sono sicuro che con un po 'di googling dovresti essere in grado di trovare riferimenti più approfonditi (era solo la prima pagina che ho trovato).

    
risposta data 14.11.2010 - 03:04
fonte
0

Linkers and Loaders di Levine è stato molto buono. Usiamo questo libro di testo in OSU nel corso di Assembler, Linker, Loader, Compiler Design.

link here to amazon

    
risposta data 13.11.2010 - 21:24
fonte
0
I want to learn allegro without wasting time.
rilevato conflitto

.

se vuoi sviluppare un gioco senza perdere tempo, inizia con un motore di gioco completo come Quake

[sì, ho usato Allegro.]

    
risposta data 02.12.2010 - 23:21
fonte

Leggi altre domande sui tag