Pergunta

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

(eu sei que, esquecê-lo, e reaprender-lo novamente. Tempo para escrevê-lo para baixo.)

Foi útil?

Solução

Se é um programa de fonte única simples:

make foo

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

Você não precisa sequer de um makefile. Marca tem o suficiente built-in regras para construir o seu arquivo de origem em um arquivo executável de mesmo nome, menos extensão.

Executar o executável apenas construído é o mesmo que correr qualquer programa -, mas na maioria das vezes você terá de especificar o caminho para o executável como o shell só irá procurar o que está em $PATH para encontrar executáveis, e na maioria das vezes que não inclui o diretório atual (.).

Assim, para executar o foo executável criado:

./foo

Outras dicas

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

Este é o comando que funciona em todas as máquinas Unix ... Eu usá-lo no Linux / Ubuntu, mas funciona em OS X também. 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 c ++ arquivo

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

$ ./lab21

Dois passos para mim:

primeira:

make foo

então:

./foo

Todos os execução de aplicativos em um Unix (Linux, Mac OS X, AIX, etc.) ambiente 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), este irá exibir a seguinte cólon separados caminho de pesquisa:

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

Assim, qualquer executável nos diretórios listados pode por correr apenas digitando em seu nome. Por exemplo:

MyTextFile.txt gato

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

Para executar qualquer outro comando que não está no caminho de pesquisa executável requer que você qualificar o caminho para o executável. Então, dizer que eu tinha uma chamada MyProgram executável no meu diretório home no Mac OS X Eu posso totalmente qualificá-lo assim:

/ Users / Oliver / MyProgram

Se você estiver em um local que está perto o programa que você queria executar você pode qualificar o nome com um caminho parcial. Por exemplo, se MyProgram estava no /Users/oliver/MyProject diretório que eu e eu estava no meu diretório home I pode qualificar o nome do executável como este, e tê-lo executar:

MyProject / MyProgram

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

../ MyProject / MyProgram

Da mesma forma, se eu estou no mesmo diretório que MyProgram eu preciso usar um "diretório atual" caminho relativo. O diretório atual que você está é o personagem ponto seguido por uma barra. Por exemplo:

./ MyProgram

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

Se você são comumente colocar 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 diretório home para shell scripts usados ??regularmente de outros programas, pode ser sábio para alterar seu caminho de pesquisa executável.

Isso pode ser faz facilmente por qualquer um criar ou editar o arquivo .bash_profile existente em seu diretório home e adicionar as linhas:

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

caráter Aqui o til (~) está sendo usado como um atalho para / Users / oliver. Observe também que as necessidades o hash estrondo (#!) de linha para ser a primeira linha do arquivo (se ele já não existir). Note também que esta técnica requer que o shell de login ser bash (o padrão no Mac OS X ea maioria das distribuições Linux). Observe também que, se você quer que seus programas instalados em ~/bin para ser usado em preferência ao sistema executáveis ??seu deve reordenar a declaração de exportação da seguinte forma:

export PATH=~/bin:$PATH

Ryan, eu estou mudando isso seja uma resposta em vez de um comentário, uma vez que parece que eu era muito breve. Fazer tudo isso no "Terminal".

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

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

    cd ~/programs/myprograms/
    (A ~ é um atalho para a sua casa, isto é, / Users / Ryan / programas / myprograms /, substitua com o local que você realmente utilizados.)

  2. compilá-lo

    g++ input.cpp -o output.bin (output.bin pode ser qualquer coisa com qualquer extensão, realmente. Bin é apenas comum em UNIX.)

    Não deve haver nada retornado se ele foi bem sucedido, e que é OK . Geralmente você obter retornos sobre falhas.

    No entanto, se você digitar ls, você 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 executá-lo com ./outbut.bin

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

Por exemplo ./a.out

Adicionar seguinte para obter melhores advertências, você não vai se arrepender. Se você pode, compilar WISE (aviso é erro)

- Wall -pedantic -Weffc++ -Werror

A forma compacta para ir sobre fazer isso poderia ser:

make foo && ./$_

É bom ter um one-liner para que você pode simplesmente re-executar o executável novamente com facilidade.

Para compilar programas em C ou C ++, há um comando comum:

  1. make filename

  2. ./filename

Faça vai construir seu arquivo de origem em um arquivo executável com o mesmo nome. Mas se você quiser usar a forma padrão, você pode usar o compilador GCC para programas de construção C & g ++ para c ++

Para C:

gcc filename.c

./a.out

Para C ++:

g++ filename.cpp

./a.out

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

Leia a make manual, ele parece bastante longo em primeiro lugar vista, mas a maioria das seções que você pode simplesmente deslizar sobre. Tudo em tudo o que me levou algumas horas e me fez muito mais produtivo.

Eu encontrei este link com 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)

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

para compilar e executar código c.

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

para compilar e executar código C ++.

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

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

Para compilar e executar um código fonte CPP do Mac um terminal de necessidades para fazer o seguinte:

  1. Se o caminho do arquivo CPP é somepath / Filename.cpp, primeiro vá ao diretório com caminho somepath
  2. Para compilar Filename.cpp, tipo c ++ Filename.cpp -o fileName
  3. Para executar o programa, digite ./nomeficheiro

A execução de um arquivo .C usando o terminal é um processo de duas etapas. O primeiro passo é digitar gcc no terminal e solte o arquivo .C ao terminal, e então pressionar Enter :

username$ gcc /Desktop/test.c 

Na segunda etapa, execute o seguinte comando:

username$ ~/a.out
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top