Por que estou recebendo esses erros indefinidos quando compilo um programa C ++ no terminal?

1

Eu tenho um programa em C ++ que compila e roda perfeitamente em blocos de código. No entanto, quando tento compilá-lo a partir do terminal usando:

gcc -g main.cpp -o Main

Eu recebo muitas referências indefinidas:

E esta é uma captura de tela do programa em execução no Code Blocks:

    
por Mark J 15.11.2013 / 10:17

3 respostas

0

Eu descobri o problema. Não encontrei a solução específica, mas encontrei um trabalho por aí. Aparentemente as aulas não estão sendo vinculadas. Então eu coloquei todas as classes no arquivo principal e funcionou perfeitamente!

    
por Mark J 20.11.2013 / 19:18
1

Você deve estar compilando usando g++ , gcc compila programas em C. Para instalar todos os pacotes necessários de g++ , faça sudo apt-get install build-essential em um terminal e, em seguida, compile seu programa, faça g++ -g main.cpp -o Main .

    
por jobin 15.11.2013 / 10:54
0

Você deve usar g++ para programas C ++ sempre!

Isso porque:

  • gcc é o compilador GNU C

  • g++ é o compilador GNU C ++

Então, eles são compiladores diferentes e, portanto, são pacotes diferentes. As principais diferenças:

  1. gcc compilará: *.c / *.cpp arquivos como C e C ++, respectivamente.
  2. g++ irá compilar: *.c / *.cpp files, mas todos serão tratados como arquivos C ++.
  3. se você usar g++ para vincular os arquivos de objeto, ele vinculará automaticamente nas bibliotecas std C ++ ( gcc não faz isso).
  4. gcc compilar arquivos C tem menos macros predefinidas.
  5. Os arquivos gcc compilação *.cpp e g++ compilação *.c / *.cpp têm algumas macros extras.

Fonte: Qual é a diferença entre g + + e gcc?

    
por Radu Rădeanu 15.11.2013 / 11:17