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.)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 (.
).
foo
:
./foo
gcc main.cpp -o main.out
./main.out
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
Primeiro:
make foo
Depois:
./foo
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
Para usar o compilador G++, Tem de fazer isto:
-
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.) -
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 De dentro do directório, execute-o agora com
./outbut.bin
Assumindo que a pasta actual não está na localização, a sintaxe é ./[name of the program]
.
Por exemplo ./a.out
Adicione a seguir para obter os melhores avisos, você não vai se arrepender. Se puder, compile WISE (aviso é erro)
- Wall -pedantic -Weffc++ -Werror
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.
Para compilar programas C ou C++, existe um comando comum:
make filename
./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
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.
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)
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
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