Domanda

Come posso compilare / eseguire C o C ++ nella console Unix o in un terminale Mac?

(Lo so, dimenticalo e riapprendilo di nuovo. È tempo di scriverlo.)

È stato utile?

Soluzione

Se si tratta di un semplice programma a sorgente singolo:

make foo

dove il file sorgente è foo.c o foo.cpp, ecc.

Non hai nemmeno bisogno di un makefile. Make ha abbastanza regole integrate per creare il tuo file sorgente in un eseguibile con lo stesso nome, meno l'estensione.

L'esecuzione dell'eseguibile appena creato equivale all'esecuzione di qualsiasi programma, ma molto spesso sarà necessario specificare il percorso dell'eseguibile poiché la shell cercherà solo ciò che è in $ PATH per trovare gli eseguibili e molto spesso non include la directory corrente (. ).

Quindi, per eseguire l'eseguibile incorporato foo :

./foo

Altri suggerimenti

gcc main.cpp -o main.out  
./main.out

Questo è il comando che funziona su tutte le macchine Unix ... Lo uso su Linux / Ubuntu, ma funziona anche su OS & nbsp; X. Digita il seguente comando in Terminal.app .

$ g++ -o lab21 iterative.cpp

-o è la lettera O non zero

lab21 sarà il tuo file eseguibile

iterative.cpp è il tuo file c ++

Dopo aver eseguito quel comando, digitare quanto segue nel terminale per eseguire il programma:

$ ./lab21

Due passi per me:

prima

make foo

quindi:

./foo

Tutta l'esecuzione dell'applicazione in un ambiente Unix (Linux, Mac & nbsp; OS & nbsp; X, AIX, ecc.) dipende dal percorso di ricerca eseguibile.

È possibile visualizzare questo percorso nel terminale con questo comando:

  

echo $ PATH

Su Mac OS X (per impostazione predefinita) verrà visualizzato il seguente percorso di ricerca separato da due punti:

  

/ usr / bin: / bin: / usr / sbin: / sbin: / usr / local / bin: / usr / X11 / bin

Quindi qualsiasi eseguibile nelle directory elencate può essere eseguito semplicemente digitando il loro nome. Ad esempio:

  

cat mytextfile.txt

Esegue / bin / cat e visualizza mytextfile.txt sul terminale.

Per eseguire qualsiasi altro comando che non si trova nel percorso di ricerca dell'eseguibile, è necessario qualificare il percorso dell'eseguibile. Quindi supponiamo di avere un eseguibile chiamato MyProgram nella mia home directory su Mac & nbsp; OS & nbsp; X Posso qualificarlo completamente in questo modo:

  

/ Users / Oliver / MyProgram

Se ti trovi in ??una posizione vicina al programma che desideri eseguire, puoi qualificare il nome con un percorso parziale. Ad esempio, se MyProgram era nella directory / Users / oliver / MyProject io e io eravamo nella mia home directory posso qualificare il nome dell'eseguibile come questo e farlo eseguire :

  

MyProject / MyProgram

O dire che ero nella directory / Users / oliver / MyProject2 e volevo eseguire / Users / oliver / MyProject / MyProgram posso usare un percorso relativo come questo, per eseguirlo:

  

../ MyProject / MyProgram

Allo stesso modo se mi trovo nella stessa directory di MyProgram ho bisogno di usare una " directory corrente " percorso relativo. La directory corrente in cui ti trovi è il carattere punto seguito da una barra. Ad esempio:

  

./ MyProgram

Per determinare la directory in cui ci si trova attualmente, utilizzare il comando pwd .

Se stai comunemente mettendo dei programmi in un posto sul tuo disco rigido che desideri eseguire senza dover qualificare i loro nomi. Ad esempio, se hai un " bin " nella directory home per gli script shell utilizzati regolarmente di altri programmi, potrebbe essere saggio modificare il percorso di ricerca eseguibile.

Questo può essere fatto facilmente creando o modificando il file .bash_profile esistente nella tua home directory e aggiungendo le righe:

#!/bin/sh
export PATH=$PATH:~/bin

Qui il carattere tilde (~) viene utilizzato come scorciatoia per / Users / oliver. Si noti inoltre che la riga hash bang (#!) Deve essere la prima riga del file (se non esiste già). Nota anche che questa tecnica richiede che la shell di accesso sia bash (impostazione predefinita su Mac & nbsp; OS & nbsp; X e la maggior parte delle distribuzioni Linux). Si noti inoltre che se si desidera che i programmi installati in ~ / bin vengano utilizzati in preferenza agli eseguibili di sistema, è necessario riordinare la dichiarazione di esportazione come segue:

export PATH=~/bin:$PATH

Ryan, sto cambiando questa per essere una risposta anziché un commento, poiché sembra che sia stato troppo breve. Fai tutto questo in " Terminale " ;.

Per usare il compilatore G ++, devi fare questo:

  1. Passare alla directory in cui è stato memorizzato il file * .cpp.

    cd ~ / programmi / myprograms /
    (la ~ è una scorciatoia per la tua casa, ovvero / Users / Ryan / programmi / myprograms /, sostituisci con la posizione che hai effettivamente usato.)

  2. Compilalo

    g ++ input.cpp -o output.bin (output.bin può essere qualsiasi cosa con qualsiasi estensione, davvero. bin è semplicemente comune su unix.)

    Non ci dovrebbe essere NULLA restituito se ha avuto successo, e questo è ok . Generalmente si ottengono ritorni sugli errori.

    Tuttavia, se si digita ls , verrà visualizzato l'elenco dei file nella stessa directory. Ad esempio, vedresti le altre cartelle, input.cpp e output.bin

  3. Dall'interno della directory, ora eseguilo con ./outbut.bin

Supponendo che la directory corrente non sia nel percorso, la sintassi è ./[name del programma] .

Ad esempio ./a.out

Aggiungi seguente per ottenere i migliori avvisi, non te ne pentirai. Se possibile, compilare WISE (l'avviso è un errore)

- Wall -pedantic -Weffc++ -Werror

Un modo compatto per fare ciò potrebbe essere:

make foo && ./

Un modo compatto per fare ciò potrebbe essere:

<*>

È bello avere un one-liner in modo da poter rieseguire facilmente il tuo eseguibile di nuovo facilmente.

È bello avere un one-liner in modo da poter rieseguire facilmente il tuo eseguibile di nuovo facilmente.

Per compilare programmi C o C ++, esiste un comando comune:

  1. crea nome file

  2. ./ filename

make costruirà il tuo file sorgente in un file eseguibile con lo stesso nome. Ma se vuoi usare il modo standard, puoi usare il compilatore gcc per creare programmi C & amp; g ++ per c ++

Per C:

gcc filename.c

./a.out

Per C ++:

g++ filename.cpp

./a.out

Usa un makefile . Anche per progetti molto piccoli (= un file), probabilmente ne vale la pena perché è possibile avere diversi set di impostazioni del compilatore per testare le cose. Il debug e la distribuzione funzionano in questo modo molto più facilmente.

Leggi il make manuale , a prima vista sembra piuttosto lungo, ma la maggior parte delle sezioni si può semplicemente sfogliare. Tutto sommato mi ci sono volute alcune ore e mi ha reso molto più produttivo.

Ho trovato questo link con le indicazioni:

http://www.wesg.ca/2007/11/how-to-write-and-compile-c-programs-on-mac-os-x/

Fondamentalmente lo fai:

gcc hello.c
./a.out (or with the output file of the first command)

basta inserire nella directory in cui si trova il tuo file c / cpp.

per compilare ed eseguire il codice c.

$gcc filename.c
$./a.out filename.c

per compilare ed eseguire codice c ++.

$g++ filename.cpp
$./a.out filename.cpp

" $ " è il simbolo del terminale mac predefinito

Per compilare ed eseguire un codice sorgente cpp dal terminale Mac è necessario:

  1. Se il percorso del file cpp è somePath / fileName.cpp, prima vai alla directory con il percorso somePath
  2. Per compilare fileName.cpp, digitare c ++ fileName.cpp -o fileName
  3. Per eseguire il programma, digitare ./fileName

L'esecuzione di un file .C utilizzando il terminale è un processo in due fasi. Il primo passo è digitare gcc nel terminale e rilasciare il file .C sul terminale, quindi premere Invio :

username$ gcc /Desktop/test.c 

Nel secondo passaggio, eseguire il comando seguente:

username$ ~/a.out
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top