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!
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:
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!
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 .
g++ para programas C ++ sempre! Isso porque:
Então, eles são compiladores diferentes e, portanto, são pacotes diferentes. As principais diferenças:
gcc compilará: *.c / *.cpp arquivos como C e C ++, respectivamente. g++ irá compilar: *.c / *.cpp files, mas todos serão tratados como arquivos C ++. g++ para vincular os arquivos de objeto, ele vinculará automaticamente nas bibliotecas std C ++ ( gcc não faz isso). gcc compilar arquivos C tem menos macros predefinidas. gcc compilação *.cpp e g++ compilação *.c / *.cpp têm algumas macros extras.