Como compilar e executar C/C++ num terminal de consola/Mac Unix?

Como posso compilar / executar C ou C++ na consola Unix ou num terminal Mac?

(Eu sei, esqueça, e reaprenda-A. Está na hora de anotar.)

Author: jsejcksn, 2008-10-21

14 answers

Se for um simples programa Fonte:

make foo

Onde o ficheiro de código é o foo.c ou foo.cpp, etc.

Nem sequer precisas de um makefile. O Make tem regras internas suficientes para criar o seu ficheiro de código num executável com o mesmo nome, menos extensão.

Executar o executável que acabou de ser construído é o mesmo que executar qualquer programa-mas, na maioria das vezes, terá de indicar a localização do executável, dado que a linha de comandos só irá procurar o que está em $PATH para encontrar executáveis, e a maioria muitas vezes, isso não inclui a pasta actual (.).

Então, para executar o executável construídofoo:
./foo
 156
Author: camh, 2018-04-09 20:47:22
gcc main.cpp -o main.out  
./main.out
 96
Author: Andrey Neverov, 2013-05-15 09:06:12

Este é o comando que funciona em todas as máquinas Unix... Uso-o no Linux/Ubuntu, mas também funciona no OS X. Escreva o seguinte comando no Terminal .app .

$ g++ -o lab21 iterative.cpp

-o a letra o não é zero

lab21 será o seu ficheiro executável

iterative.cpp é o seu ficheiro C++

Depois de executar esse tipo de comando, o seguinte no terminal para executar o seu programa:

$ ./lab21
 57
Author: Komengem, 2017-02-12 22:24:42
Dois passos para mim:

Primeiro:

make foo

Depois:

./foo
 31
Author: Victor Augusto, 2014-07-28 11:52:50

Toda a execução de aplicações em Unix (Linux, Mac OS X, AIX, etc.) o ambiente depende do caminho de pesquisa do executável.

Poderá mostrar esta localização no terminal com este comando:

Echo $PATH

No Mac OS X (por omissão) isto irá mostrar a seguinte localização de pesquisa separada por dois pontos:

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

Como tal, qualquer executável nas pastas listadas pode ser executado só escrevendo em nome deles. Por exemplo:

Cat mytextfile.txt

Isto corre /bin/cat e mostra o meu ficheiro.txt para o terminal.

Para executar qualquer outro comando que não esteja na localização de pesquisa do executável, é necessário que qualifique a localização para o executável. Então, digamos que eu tinha um executável chamado MyProgram na minha pasta pessoal no Mac OS X eu posso qualificá-lo totalmente assim:

/Users / oliver / MyProgram

Se estiver num local isso é perto do programa que você deseja executar você pode qualificar o nome com um caminho parcial. Por exemplo, se MyProgram estava no directório /Users/oliver/MyProject eu e eu estávamos no meu directório pessoal posso qualificar o nome do executável como este, e fazê - lo executar:

MyProject / MyProgram

Ou dizer que estava no directório /Users/oliver/MyProject2 e que queria executar /Users/oliver/MyProject/MyProgram Posso usar um caminho relativo como este, para o executar:

../MyProject / MyProgram

Eu estou no mesmo diretório que MyProgram Eu preciso usar um" diretório atual " caminho relativo. A pasta actual em que está é o carácter do período seguido de uma barra. Por exemplo:

./MyProgram

Para determinar qual a pasta em que está a usar o comando pwd.

Se você está geralmente colocando programas em um lugar em seu disco rígido que você deseja executar sem ter que qualificar seus nomes. Por exemplo, se você tem um diretório " bin " em seu pasta pessoal para scripts de shell usados regularmente de outros programas, pode ser sensato alterar a sua localização de pesquisa executável.

Isto pode ser feito facilmente criando ou editando o ficheiro .bash_profile existente na sua pasta pessoal e adicionando as linhas:

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

Aqui o carácter tilde (~) está a ser usado como atalho para /Users/oliver. Note também que o hash bang ( # !) a linha precisa ser a primeira linha do arquivo (se ele já não existe). Note também que esta técnica requer que a sua linha de comandos seja bash (o padrão no Mac OS X e na maioria das distribuições Linux). Lembre - se também que se quiser que os seus programas instalados em ~/bin sejam usados de preferência aos executáveis do sistema, deverá reordenar a instrução de exportação do seguinte modo:

export PATH=~/bin:$PATH
 15
Author: orj, 2017-02-12 22:23:46
Ryan, estou a mudar isto para uma resposta em vez de um comentário, pois parece que fui muito breve. Faça tudo isso em "Terminal".

Para usar o compilador G++, Tem de fazer isto:

  1. Navegue para a pasta em que guardou o *.ficheiro cpp.

    cd ~/programs/myprograms/
    (o ~ é um atalho para a sua casa, ou seja, /Users/Ryan/programs/myprograms/, substitua pelo local que realmente usou.)

  2. Compila-o

    g++ input.cpp -o output.bin (saída.bin pode ser qualquer coisa com alguma extensão, na verdade. bin é apenas comum no unix.)

    Não deve haver nada devolvido se for bem sucedido, e isso é ok. Geralmente você recebe retornos em falhas.

    No entanto, se escrever ls, irá ver a lista de ficheiros no mesmo directório. Por exemplo, você veria as outras pastas, entrada.cpp e saída.bin

  3. De dentro do directório, execute-o agora com ./outbut.bin

 9
Author: nerdwaller, 2012-12-04 23:38:28

Assumindo que a pasta actual não está na localização, a sintaxe é ./[name of the program].

Por exemplo ./a.out

 8
Author: P-A, 2016-08-23 11:02:06

Adicione a seguir para obter os melhores avisos, você não vai se arrepender. Se puder, compile WISE (aviso é erro)

- Wall -pedantic -Weffc++ -Werror
 7
Author: Nazgob, 2008-12-17 20:49:07

Uma forma compacta de fazer isso pode ser:

make foo && ./$_
É bom ter uma linha única para que possa voltar a executar facilmente o seu executável.
 7
Author: markthethomas, 2015-01-14 04:07:36

Para compilar programas C ou C++, existe um comando comum:

  1. make filename

  2. ./filename

O Make irá construir o seu ficheiro de código num ficheiro executável com o mesmo nome. Mas se quiser usar a forma normal, poderá usar o compilador gcc para criar programas C & g++ para c++

Para C:

gcc filename.c

./a.out

Para C++:

g++ filename.cpp

./a.out
 4
Author: Yogesh Nogia, 2018-04-11 10:33:31

Utilize um makefile. Mesmo para projetos muito pequenos (=um arquivo), o esforço provavelmente vale a pena porque você pode ter vários conjuntos de configurações de compilador para testar coisas. Depuração e implantação funciona muito mais fácil desta forma.

Leia o make manual , parece bastante longo à primeira vista, mas a maioria das secções pode simplesmente esquivar-se. No geral, levei algumas horas e tornei-me muito mais produtivo.

 2
Author: Konrad Rudolph, 2008-10-21 08:58:47

Encontrei esta ligação com as direcções:

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

Basicamente fazes:

gcc hello.c
./a.out (or with the output file of the first command)
 1
Author: Srini Kadamati, 2017-02-12 22:26:02

Basta indicar na pasta em que está o seu ficheiro c/cpp.

Para compilar e executar o código C.

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

Para compilar e executar o código C++.

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

"$" é o símbolo de terminal mac por omissão

 0
Author: Shiv Prakash, 2018-10-05 11:49:31

Correndo A.O arquivo C usando o terminal é um processo de duas etapas. O primeiro passo é digitar gcc no terminal e largar o .C file to the terminal, and then press Enter:

username$ gcc /Desktop/test.c 

No segundo passo, execute o seguinte comando:

username$ ~/a.out
 -1
Author: Himanshu Mahajan, 2017-02-12 22:27:16