Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Header Files C++

Olá,

estou tentando imprimir apenas o cabeçalho do meu arquivo forca.cpp e não estou conseguindo. Possuo três arquivos separados conforme explicado pelo professor, contudo, não imprime a mensagem desejada no terminal.

Arquivo main:

#include <iostream>
#include "cabecalho.hpp"
using namespace std;

int main(){
    cabecalho();
}

Arquivo cabecalho.cpp

#include <iostream>
#include "cabecalho.hpp"

void cabecalho(){
    std::cout << std::endl;
    std::cout << "Testando as funcionalidades do programa!" << std::endl;
    std::cout << std::endl;
}

Arquivo cabecalho.hpp:

void cabecalho();

Poderiam me ajudar e indicar aonde está o erro? Muito obrigado pela ajuda.

3 respostas

Opa Marcio, tudo bem?

Então... não identifiquei nenhum problema no teu código, rs. Pode ser que você apenas está utilizando o comando errado para compilar o programa! (caso possa enviar a mensagem de erro retornada, poderá ser útil)

O compilador GCC possui dois comandos: gcc e g++, ambos com finalidades diferentes (a grosso modo, o gcc é utilizado para compilar programas em C, e g++ para compilar programas em C++).

O que estou tentando deduzir é que foi utilizado o comando gcc para compilar código C++, e está sendo retornado um erro de referência indefinida, algo como: undefined reference to '...'. Neste caso, é só dar o comando g++ *.cpp -o, que deverá ser gerado o executável a.out com sucesso.


Espero ter ajudado! Abraços e bons estudos ^-^

Bom dia Marcus!

Obrigado pela ajuda e pela resposta. o erro que é reportado no terminal do VSCode é:

 undefined reference to '''cabecalho()' collect2.exe: error: ld returned 1 exit status.''' 

Já fiz todo o processo de compilação que você mencionou acima. Contudo, o erro ainda permanece. O erro deixa de existir quando, ao invés de fazer #include "cabecalho.hpp, eu faço #include "cabecalho.cpp. Peguei um exemplo básico para testar as funcionalidades do aprendizado, além de rever o módulo em específico umas 3x.

Obrigado pela ajuda.

At.te, Márcio

solução!

Caso alguém tenha alguma dúvida, explicarei o procedimento de solução do problema.

1) Note que o professor realiza TODAS as instruções pelo terminal. Isso é o ponto mais importante a notar. 2) Gerar o arquivo objeto através do g++ -o nome_arquivo.exe e do nome_arquivo.cpp 3) Rodar no TERMINAL e não apertando F6 do VSCode. Esse foi o ponto principal que eu notei. 4) Segue a referência para maiores esclarecimentos: https://www.youtube.com/watch?v=0TCh01BBlrM

Se algum colega encontrou uma solução diferente para este problema, coloco o meu debate em aberto para demais esclarecimentos.