Vai al contenuto

~/a.out


Messaggi raccomandati

Bon weekend all'utenza del forum.

 

Come probabilmente avrete capito dal titolo del topic, sto cominciando ad interfacciarmi con il terminale di Mac OS per esplorare in modo più tangibile il mondo della programmazione.

Sono alle primissime armi con Unix, e alle prime esperienze con la programmazione C, e usare Xcode che fa tutto da se senza farmi capire nulla sui passaggi necessari per compilare e linkare i miei codici sorgente mi fa sentire un po troppo superficiale.

Ho trovato scritto in un libro che per compilare un sorgente.c bisogna affidarsi a GCC tramite il comando

 

GCC sorgente.c

 

poi viene lanciato il comando

 

ls -l a.out

 

e infine

 

./a.out

 

In un altro testo su internet, al posto di quest'ultimo, viene usato questo comando:


~/a.out

 

 

 

Mi piacerebbe capire che tipo di file sia a.out, dato che non cambia al cambiare del sorgente; che comandi sono, la differenza tra gli ultimi due e cosa fanno effettivamente, quindi se qualcuno armato di un po di pazienza ha voglia di aiutarmi mi farebbe un grande piacere.

Grazie ancora!

MacBook Pro 8,2 13,3" | 8 GB DDR3 1600 MHz; SSD OWC Mercury Pro 6G

Link al commento
Condividi su altri siti

a.out è un eseguibile, cioè un file scritto in linguaggio macchina pronto per essere eseguito.

 

per compilare fai così

 

cc nomefile.c -o nomefile (con questo comando il codice sorgente del file .c è stato compilato in codice macchina)

 

in questo modo invece di a.out (che è il nome che viene dato di default all'eseguibile) crei un eseguibile chiamato "nomefile", l'opzione "-o nomefile" serve a specificare quale nome vuoi dare all'eseguibile.

per eseguirlo dovrai poi fare: ./nomefile

 

ls è un comando che serve ad avere la lista dei file presenti nella directory corrente (quella in cui ti trovi).

Un Tetris in vecchio stile, dedicato alla versione per Mac degli anni 80.

Link al commento
Condividi su altri siti

Ok, grazie sono riuscito a compilare con Clang. Ora mi stavo domandando come fare per vedere il codice assembly corrispondente.

Ho provato a usare sempre cc e otool, ma non riesco nemmeno a ottenere una stampa a video...

MacBook Pro 8,2 13,3" | 8 GB DDR3 1600 MHz; SSD OWC Mercury Pro 6G

Link al commento
Condividi su altri siti

cc -S nomefile.c
 

 

 

In questo modo verrà generato un file chiamato 

nomefile.s

 

che conterrà il codice in assembly, il file non verrà compilato come fatto notare da fra.makaveli. Se vuoi anche specificare il nome del file da creare usa l'opzione -o:

cc -o nuovo_nome -S nomefile.c

Un Tetris in vecchio stile, dedicato alla versione per Mac degli anni 80.

Link al commento
Condividi su altri siti

Archiviato

Questa discussione è archiviata e chiusa a future risposte.

×
×
  • Crea Nuovo...