“Undefinierter Bezug auf” in G ++ Cpp

Kann nicht scheinen, dass die Fehler verschwinden. Fehler sind unten. Ich habe auf Google geschaut und kann es immer noch nicht herausfinden. Es ist nicht so, als ob ich neu bei Cpp bin, aber ich habe mich schon lange nicht damit herumgeschlagen.

Sonderbare Sache ist es mit G ++ in Windows …

Fehler:

  • [ze @ fed0r! – – ** _ _ *] $ g ++ main.cpp
  • /tmp/ccJL2ZHE.o: In der function `main ‘:
  • main.cpp :(. text + 0x11): undefinierter Verweis auf `Help :: Help () ‘
  • main.cpp :(. text + 0x1d): undefinierter Verweis auf `Hilfe :: sayName () ‘
  • main.cpp :(. text + 0x2e): undefinierter Verweis auf `Hilfe :: ~ Hilfe () ‘
  • main.cpp :(. text + 0x46): undefinierter Verweis auf `Help :: ~ Help () ‘
  • collect2: ld gab 1 Exit-Status zurück

main.cpp

#include  #include "Help.h" using namespace std; int main () { Help h; h.sayName(); // *** // *** // *** return 0; } 

Hilfe.h

 #ifndef HELP_H #define HELP_H class Help { public: Help(); ~Help(); void sayName(); protected: private: }; #endif // HELP_H 

Hilfe.cpp

 #include  #include "Help.h" using namespace std; Help::Help() { // Constructor } Help::~Help() { // Destructor } void Help::sayName() { cout << " ***************" << endl; cout << " ************************************" << endl; cout << " ************" << endl; cout << " *********************" << endl; } 

Solutions Collecting From Web of "“Undefinierter Bezug auf” in G ++ Cpp"

g ++ main.cpp Hilfe.cpp

Sie müssen dem Compiler alle Dateien mitteilen, die Sie kompilieren möchten, nicht nur die erste.

Sie sollten help.o zu Ihrer g ++ – Zeile hinzufügen:

 g++ -c help.cpp -o help.o g++ help.o main.cpp 

Durch die Aufteilung auf zwei Zeilen können Sie die help.cpp (bei größeren Projekten) speichern, da Sie help.cpp nur bei Änderungen übersetzen können. make und Makefile die gut verwendet werden, ersparen Ihnen eine Menge Kopfschmerzen:

 #Makefile all: main main: help main.cpp g++ -o main help.o main.cpp help: help.cpp g++ -c -o help.o help.cpp 

Ich hatte das gleiche Problem mit meiner Linux-Lubuntu-Distribution und es verursachte das Problem für meinen Konstruktor, Destruktor, es erkannte sie nicht.

Eigentlich geht das, wenn Sie nur alle drei Dateien zusammen kompilieren. Sobald Sie alle Ihre Dateien gespeichert haben, tun Sie Folgendes:

 $ g++ main.cpp Help.h Help.cpp $ ./a.out 

./a.out ist die ausführbare Datei für das Linux, Sorry, aber ich weiß nichts über das Windows. Und Ihr Programm würde reibungslos laufen.