it-swarm.dev

Como compilar e executar o C / C ++ em um terminal Unix / Mac?

Como posso compilar/executar C ou C++ no console Unix ou em um terminal Mac?

(Eu sei, esqueça, e reaprenda-o novamente. Hora de anotá-lo.)

126
P-A

Se é um programa simples de fonte única:

make foo

onde o arquivo de origem é foo.c ou foo.cpp, etc.

Você nem precisa de um makefile. Make possui regras internas suficientes para construir seu arquivo de origem em um executável com o mesmo nome, menos a extensão.

Executar o executável criado é o mesmo que executar qualquer programa - mas, na maioria das vezes, você precisará especificar o caminho para o executável, pois o Shell pesquisará apenas o que está em $PATH para localizar executáveis ​​e, na maioria das vezes, não inclui o diretório atual. (.).

Então, para executar o executável construído, foo:

./foo
169
camh
gcc main.cpp -o main.out  
./main.out
104
Andrey Neverov

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

$ g++ -o lab21 iterative.cpp

-o é a letra O não zero

lab21 será o seu arquivo executável

iterative.cpp é o seu arquivo c ++

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

$ ./lab21
65
Komengem

Dois passos para mim:

primeiro:

make foo

então:

./foo
31
Victor Augusto

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

Você pode exibir este caminho no terminal com este comando:

echo $ PATH

No Mac OS X (por padrão), isso exibirá o seguinte caminho de pesquisa separado por dois pontos:

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

Portanto, qualquer executável nos diretórios listados pode ser executado apenas digitando seu nome. Por exemplo:

cat mytextfile.txt

Isso executa /bin/cat e exibe mytextfile.txt para o terminal.

Para executar qualquer outro comando que não esteja no caminho de pesquisa executável, é necessário qualificar o caminho para o executável. Então, digamos que eu tivesse um executável chamado MyProgram no meu diretório pessoal no Mac OS X, eu posso qualificá-lo totalmente assim:

/ Users/oliver/MyProgram

Se você estiver em um local próximo ao programa que deseja executar, poderá qualificá-lo com um caminho parcial. Por exemplo, se MyProgram estava no diretório /Users/oliver/MyProject I e eu estava em meu diretório home, eu posso qualificar o nome do executável como este e executá-lo:

MyProject/MyProgram

Ou digamos que eu estava no diretório /Users/oliver/MyProject2 e queria executar /Users/oliver/MyProject/MyProgram eu posso usar um caminho relativo como esse, para executá-lo:

../MyProject/MyProgram

Da mesma forma, se eu estiver no mesmo diretório que MyProgram, preciso usar um caminho relativo "diretório atual". O diretório atual em que você está é o caractere de período seguido por uma barra. Por exemplo:

./MyProgram

Para determinar em qual diretório você está atualmente, use o comando pwd.

Se você costuma colocar programas em um local no disco rígido que deseja executar sem precisar qualificar seus nomes. Por exemplo, se você tiver um diretório "bin" em seu diretório home para scripts Shell regularmente usados ​​de outros programas, pode ser aconselhável alterar seu caminho de pesquisa executável.

Isso pode ser feito facilmente, seja criando ou editando o arquivo .bash_profile existente em seu diretório pessoal e adicionando as linhas:

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

Aqui, o caractere til (~) está sendo usado como um atalho para/Users/oliver. Observe também que a linha hash bang (#!) Precisa ser a primeira linha do arquivo (se ela ainda não existir). Note também que esta técnica requer que seu login shell seja bash (o padrão no Mac OS X e na maioria das distribuições Linux). Observe também que, se você quiser que seus programas instalados em ~/bin sejam usados ​​de preferência aos executáveis ​​do sistema, você deve reordenar a declaração de exportação da seguinte forma:

export PATH=~/bin:$PATH
15
orj

Ryan, estou mudando isso para ser uma resposta em vez de um comentário, já que parece que eu fui muito breve. Faça tudo isso em "Terminal".

Para usar o compilador G ++, você precisa fazer isso:

  1. Navegue até o diretório no qual você armazenou o arquivo * .cpp.

    cd ~/programs/myprograms/
    (o ~ é um atalho para sua casa, por exemplo,/Users/Ryan/programs/myprograms /, substitua pelo local que você realmente usou.)

  2. Compile

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

    Não deve haver NADA devolvida se for bem sucedida, e isso é ok. Geralmente você recebe devoluções de falhas.

    No entanto, se você digitar ls, verá a lista de arquivos no mesmo diretório. Por exemplo, você veria as outras pastas, input.cpp e output.bin

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

10
nerdwaller

Supondo que o diretório atual não esteja no caminho, a sintaxe é ./[name of the program].

Por exemplo, ./a.out

8
P-A

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

- Wall -pedantic -Weffc++ -Werror
7
Nazgob

Uma maneira compacta de fazer isso poderia ser:

make foo && ./$_

É bom ter um one-liner para que você possa simplesmente executar novamente o seu executável facilmente.

7
markthethomas

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

  1. make filename

  2. ./filename

make irá construir seu arquivo de origem em um arquivo executável com o mesmo nome. Mas se você quiser usar o modo padrão, você pode usar o compilador gcc para construir programas C & g + + para c + +

Para C:

gcc filename.c

./a.out

Para C++:

g++ filename.cpp

./a.out
5
Yogesh Nogia

Use 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 as coisas. A depuração e a implantação funcionam muito mais facilmente dessa maneira.

Leia o make manual , parece bastante longo à primeira vista, mas a maioria das seções você pode simplesmente deslizar. Tudo isso me levou algumas horas e me fez muito mais produtivo.

2
Konrad Rudolph

Eu encontrei este link com as direções:

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

Basicamente você faz:

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

Para compilar e executar um código-fonte do cpp a partir do terminal Mac, é necessário fazer o seguinte:

  1. Se o caminho do arquivo cpp for somePath/fileName.cpp, primeiro vá para o diretório com o caminho somePath
  2. Para compilar fileName.cpp, digite c ++ fileName.cpp -o fileName
  3. Para executar o programa, digite ./fileName
0
Alper Gur

basta entrar no diretório em que o seu arquivo c/cpp é.

para compilar e executar o código c.

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

para compilar e executar código c ++.

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

"$" é o símbolo do terminal mac padrão

0
Shiv Prakash