Eu sou novo no Linux. Estou usando o Ubuntu 11.04 e não sei como compilar e executar o programa C ++ nele. Eu preciso conhecer os comandos para compilar e executar um programa C ++ no Linux.
Eu sou novo no Linux. Estou usando o Ubuntu 11.04 e não sei como compilar e executar o programa C ++ nele. Eu preciso conhecer os comandos para compilar e executar um programa C ++ no Linux.
Respostas:
Para compilar seu código c ++, use:
g++ foo.cpp
foo.cpp no exemplo é o nome do programa a ser compilado.
Isso produzirá um executável no mesmo diretório chamado a.out
que você pode executar digitando isto em seu terminal:
./a.out
O g ++ já deve estar no seu $ PATH, portanto você não precisa chamar /usr/bin/g++
explicitamente, mas pode usá-lo em qualquer caso.
foo.cpp
deve estar no mesmo diretório em que você está executando o comando. Se houver alguma dúvida, verifique se você está no mesmo diretório digitando ls foo.cpp
ou head foo.cpp
(se precisar verificar se está trabalhando com o correto foo
).
Conforme observado por @ con-f-use, o compilador normalmente tornará esse arquivo executável, mas se não, você poderá fazer isso sozinho (para que o comando para executar, ./a.out
ou equivalente, funcione):
chmod +x ./a.out
Para especificar o nome do arquivo de saída compilado, para que ele não seja nomeado a.out
, use -o
com o seu comando g ++.
Por exemplo
g++ -o output foo.cpp
Isso será compilado foo.cpp
no arquivo binário nomeado output
e você poderá digitar ./output
para executar o código compilado.
a.out
neste caso) executável. Se você não pode fazê-lo digitando: chmod +x a.out
. Quando o seu programa compilado é executável, você pode executá-lo digitando ./a.out
- o ponto e a indicação de barra que deseja executá-lo.
Estou fazendo duas suposições aqui:
A maneira mais simples de compilar um programa C ++ no Ubuntu, ou qualquer outra distro do Linux, é digitar
g++ main.cpp -o main
g++ -o main main.cpp
é igualmente válido.Os comandos acima assumem que você já está no local dos arquivos de origem, mas o arquivo de origem e o arquivo de saída de destino também podem ser especificados como um diretório. Por exemplo
g++ ~/Desktop/main.cpp -o ~/Projects/main
irá compilar um arquivo de origem C ++ localizado na área de trabalho e colocar o binário executável em uma Projects
pasta no diretório inicial. Para executar este executável, execute ./Projects/main
.
É assim que eu gosto de compilar com o g ++.
$g++ -W -Wall -pedantic -o programName -p sourceFile.cpp
-W: Print extra warning messages for some problems.
-Wall: Enable all the warnings about questionable code
-pedantic: Show all the warnings demanded by strict ISO compliance
-o programName: place the executable output in programName sourceFile.cpp: the
name of our source code file
-p: Generate extra code to write profile information suitable for the analysis program prof
-p: Generate extra code to write profile information suitable for the analysis program prof.
Você precisa do g ++, pois o gcc pode não compilar o arquivo cpp facilmente.
Você também precisa aprender vim ou emacs para escrever código C.
Apenas tente isso no seu terminal:
Digite um programa de teste e salve-o:
$vim hello.cc
Compile hello.cc
com g ++:
$g++ hello.cc -o hello
Execute:
$./hello
Aqui ./
, o arquivo exe está sob o diretório atual.
vi
, mas isso não importa. Você deve se afastar de sugerir um editor específico, pois todo mundo usa o seu próprio de qualquer maneira.
g++
é um front-end para gcc
(GNU Compiler Collection) com algumas macros c ++ predefinidas e diferentes opções / sinalizadores padrão.
compilar código c ++ com gcc
é útil quando g++
não está disponível por várias razões, na verdade, é apenas uma questão de vincular à biblioteca c ++ -lstdc++
e informar ao gcc para tratar a entrada como código c ++ (usando uma .C
extensão ou forçando o idioma com -x
)
outros sufixos de nome de arquivo c ++ válidos: .cc
, .cp
, .cxx
, .cpp
, .CPP
,.c++
exemplo:
gcc cpp_code.C -lstdc++
a extensão maiúscula ( .C
) é importante para o gcc saber que é um arquivo c ++.
ou especificando explicitamente o idioma de entrada:
gcc -x c++ cpp_code.txt -lstdc++
extensão pode ser qualquer coisa, ou mesmo nada
Por padrão, o resultado (após uma compilação bem-sucedida) é um a.out
arquivo que pode ser executado com./a.out