2012-12-15 84 views
31

Sto imparando C per un corso nella mia università e desidero scrivere il programma usando l'editor di testo TextWrangler sul mio Mac (con OSX Lion 10.7). Una volta scritto il file .c, lo compilo usando gcc. Ho scaricato il compilatore da Apple Developer Tools.Come compilare ed eseguire il programma C su Mac OS X

È incluso in un download di strumenti da riga di comando. Individuo il file usando Terminal, lo compilo usando gcc filename.c dove viene creato il file eseguibile a.out. Tuttavia, quando digito "a.out" o "/a.out" ottengo i seguenti messaggi: "-bash: a.out: comando non trovato" o "-bash: /a.out: nessun file o directory ". Ho compilato con successo ed eseguito programmi C su sistemi Linux prima di utilizzare questo stesso metodo. Cosa sto sbagliando sul mio Mac?

risposta

40

è necessario aggiungere un punto per indicare che l'eseguibile si trova nella directory corrente, come la directory corrente non si trova nel percorso:

./a.out 
+0

Che lo ha fatto! Grazie! – JT9

+2

@JTWheeler, si potrebbe anche prendere in considerazione la denominazione del file oggetto in quanto ciò impedirebbe a.out di essere sovrascritto durante la compilazione di più programmi C manualmente nella stessa directory. Fare 'gcc myprog1.c -o myprog1.o' ed eseguirlo facendo './myprog1.o'. Solo un suggerimento. E in alternativa è possibile utilizzare clang anziché gcc per il codice di pratica in quanto fornisce migliori dettagli di errore. – Bharat

3

assicurarsi di impostare le autorizzazioni di esecuzione con chmod + x un .out

+3

gcc lo fa per te ... Non è necessario eseguire chmod – benjarobin

+0

corretto, ma questa è una buona pratica in quanto non tutti utilizzano gcc. – MichaelM

4

È necessario aggiungere un punto davanti alla barra:

./a.out 

/a.out avrebbero cercato di eseguire un programma nella cartella principale (/).
a.out cercherà il tuo programma in tutte le cartelle definite nella variabile di ambiente PATH.

Ho compilato con successo e eseguito programmi C su sistemi Linux prima di utilizzare questo stesso metodo. Cosa sto sbagliando sul mio Mac?

Devi fare lo stesso su Linux.

17

Ti manca solo una cosa! Invece di "/a.out" dovrebbe essere "./a.out". Un'altra cosa utile è cambiare l'output in modo da poter avere più programmi compilati. Semplicemente, l'unica cosa che è necessario mettere nel terminale è il seguente (riempire gli spazi vuoti con ciò che si vorrebbe)

gcc nameofprogramyouwrote.c -o whatyouwanttheprogramtobenamed 

buona fortuna!

-2

Avrai bisogno di un compilatore. Il modo più semplice è installare XCode. In questo modo avrai accesso a "gcc", Quindi,

gcc -o mybinaryfile mysourcefile.c 

Quindi eseguirlo in questo modo.

./mybinaryfile 

Spero che questo aiuti !.

0

Costruire:

gcc -Wall -o yourFile yourFile.c 

Poi per eseguire:

./yourFile