O que é um comando para compilar e executar programas C ++?

89

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.

Rajeshkumar
fonte
1
Alguma das respostas o ajudou?
Lindhe

Respostas:

108

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.outque 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.cppdeve 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.cppou 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.outou 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 -ocom o seu comando g ++.

Por exemplo

g++ -o output foo.cpp

Isso será compilado foo.cppno arquivo binário nomeado outpute você poderá digitar ./outputpara executar o código compilado.

belacqua
fonte
6
O compilador geralmente torna o binário ( a.outneste 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.
con-f-use
@Rajeshkumar, você encontrou uma dessas respostas ao seu gosto? Em caso afirmativo, marque uma delas como a resposta aceita (selecionando o visto abaixo das setas para cima / para baixo) para que possamos desenhar uma linha abaixo desta questão.
Existe uma diferença entre a saída g ++ foo.c -o e a saída g ++ -o foo.c?
Goldname 1/10/16
21

Estou fazendo duas suposições aqui:

  1. Você já possui um arquivo / programa de origem C ++ pronto para criar
  2. Você configurou um sistema de compilação no seu computador

A maneira mais simples de compilar um programa C ++ no Ubuntu, ou qualquer outra distro do Linux, é digitar

g++ main.cpp -o main
  • g ++ é a invocação do componente C ++ do GCC , o compilador defacto para C / C ++ e um host inteiro de outras linguagens na plataforma Linux. Atualmente, é o único compilador capaz de compilar o kernel do Linux.
  • main.cpp é o arquivo de origem c ++ que você deseja compilar.
  • -o main especifica o nome do arquivo de saída que você deseja criar depois que a fonte for compilada. O arquivo de origem de destino e o arquivo de saída de destino podem ser invertidos, se desejar, portanto, g++ -o main main.cppé igualmente válido.
  • Para executar esse programa, você precisa fazer ./main no terminal.

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 Projectspasta no diretório inicial. Para executar este executável, execute ./Projects/main.


fonte
5

É 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
amrx
fonte
1
-p: Generate extra code to write profile information suitable for the analysis program prof.
Hans
Eu gosto da sua resposta. Traz sugestões extras. Mas você realmente deve reformulá-lo para ser geralmente aceitável.
LinuxSecurityFreak
1

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.cccom g ++:

$g++ hello.cc -o hello

Execute:

$./hello

Aqui ./, o arquivo exe está sob o diretório atual.

bigeast
fonte
3
O gcc é o compilador GNU para o compilador C e C ++. E o OP não precisa necessariamente conhecer o vim ou o emacs para escrever o código C, existem muitos outros editores de texto e IDE flutuando.
Nitin Venkatesh
3
embora eu adore o vim, se alguém já tiver dificuldades em descobrir como executar um problema, sugerir que o vim não é muito útil.
johanvdw
Eu pessoalmente não gosto 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.
LinuxSecurityFreak
0

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 .Cextensã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.outarquivo que pode ser executado com./a.out


fonte
Sua resposta é mais informativa
Billal Begueradj 18/17/17