undefinierter Verweis wegen Konstrukoren?
-
Warnung: undefinierter Verweis auf »Anzeige::print_Wahl()« collect2: error: ld returned 1 exit status
Hab gelesen das es was mit dem Linker zutun haben kann, aber ich benutze CodeBlocks, da sollte dass doch funktionieren?
-
Warnung: undefinierter Verweis auf »Anzeige::print_Wahl()«
Das hat nun noch mit dem Konstruktor nichts zu tun?!
Ist dein Quellcode in .h/.cpp aufgeteilt? Werden alle cpp-Dateien übersetzt und zusammengelinkt? Mehrere Klassen "Anzeige"? Includeguards korrekt?
-
Ich nahm es erst an, korrigiert würde ich sagen, ich kann ohne Konstruktoren übersetzten und ein Objekt anlegen. Doch wenn ich eine Mothode mit diesem Objekt aufrufe bekomm ich den Fehler.
ICh habe die h./.cpp Aufteilung. Die Linker einstellungen habe ich zu vorrigen Übersetzungen anderer Codes nicht verändert. Die Includes sollten stimmen und eine gibt keine Dopplungen, Es sind nur zwei ganz einfache KLassen.
-
Zeig doch mal ein beispiel. Ich bekomm den fehler nichtmal erzeugt
-
@Lou-Cyphr3 sagte in undefinierter Verweis wegen Konstrukoren?:
ICh habe die h./.cpp Aufteilung. Die Linker einstellungen habe ich zu vorrigen Übersetzungen anderer Codes nicht verändert. Die Includes sollten stimmen und eine gibt keine Dopplungen, Es sind nur zwei ganz einfache KLassen.
Wie sollen wir wissen, was du eingestellt hast? Kannst du nicht einfach mal
g++ -Wall -Wextra -O2 meine-eine.cpp meine-andere.cpp -o mein-programm
ausführen? Macht das CodeBlocks ein Makefile? Kann es mit CMake umgehen? Ich kenne das Programm nicht - wenn du mitg++
direkt kompilieren und linken kannst, dann liegts an Einstellungen in CodeBlocks bzw. einem fehlenden Makefile.
-
@Lou-Cyphr3 Du nix zeigen Code. Keine Ahnung. Kann schon sein.
@Abe sagte in undefinierter Verweis wegen Konstrukoren?:
Ich bekomm den fehler nichtmal erzeugt
ich schon:
Error LNK2019 unresolved external symbol "public: void __cdecl Anzeige::print_Wahl(void)" (?print_Wahl@Anzeige@@QEAAXXZ) referenced in function main in Source1.obj
magic.
-
@Swordfish ,dann sei doch so lieb und sag mir wie:
-
struct Anzeige { void print_Wahl(); }; int main() { Anzeige a; a.print_Wahl(); }
// edit: Die gewählten Namen zeigen recht deutlich daß da jemand keinen blassen Schimmer von OOP und Abstraktion hat.
-
ziemlich gut!
#ifndef ANZEIGE_H #define ANZEIGE_H class Anzeige { public: void text(); void print_Wahl(); }; #endif // ANZEIGE_H
.cpp
#include "Anzeige.h" #include <iostream> using namespace std; // void Anzeige::text(){ cout <<Text<< endl; } void Anzeige::print_Wahl(){ cout << **wahl** << endl; } ```cpp
@Swordfish sagte in [undefinierter Verweis wegen Konstrukoren?](/forum/post/2575580): > // edit: Die gewählten Namen zeigen recht deutlich daß da jemand keinen blassen Schimmer von OOP und Abstraktion hat. Stimmt so ein bisschen. Aber wie kommst du drauf? Also wegen der Anzeige Klasse? Oder meinst du, dass man die Ausgaben lieber direkt in eine Klasse schmeißen sollte?
-
Tjoa. Da ist nirgends eine
main()
. Compileraufruf?.h
und.cpp
sind auch höchstwahrscheinlich keine gültigen Dateinamen.
-
@Lou-Cyphr3 sagte in undefinierter Verweis wegen Konstrukoren?:
Aber wie kommst du drauf? Also wegen der Anzeige Klasse?
Ja, jein, nee, aber
@Lou-Cyphr3 sagte in undefinierter Verweis wegen Konstrukoren?:
void Anzeige::print_Wahl(){
riecht streng danach daß das irgendein Dinsti sein soll daß eine Art Menü darstellen soll.
-
Natürlich, sind da noch namen vorn dran. Waren wir nicht gerade bei Abstraktion?
die main() gibts natürlich auch.
#include <iostream> #include "Anzeige.h" #include "figur.h" using namespace std; int main() { Anzeige a; a.print_Wahl(); return 0; }
wie kommst du nun auf deine Einschätzungen?
-
Ich kann hellsehen.
Achso, jetzt gibt es auch noch eine "figur.h". Bekommst Du immer noch denselben Fehler?
-
riecht streng danach daß das irgendein Dinsti sein soll daß eine Art Menü darstellen soll.
Stimmt schon irgendwie : d.h. Das macht man bei OOP nicht?
-
jupp, gleicher Fehler. Was bedeutetet denn undefinierter Verweis ? Gibt's da was generelles?
Die figur klasse ist so natürlich mehr als unfertig/ eher ne Skizze
-
@Lou-Cyphr3 sagte in undefinierter Verweis wegen Konstrukoren?:
Stimmt schon irgendwie
siehst?
@Swordfish sagte in undefinierter Verweis wegen Konstrukoren?:
Ich kann hellsehen.
@Lou-Cyphr3 sagte in undefinierter Verweis wegen Konstrukoren?:
d.h. Das macht man bei OOP nicht?
Ja, jein, nein.
Kann man schon machen. Wirklich sinn würde es aber wohl nur machen wenn man dann auch die Menüstruktur in diesem Dingsti registrieren könne inkl. dispatching.
-
Was bedeutetet denn undefinierter Verweis ? Gibt's da was generelles?
Ja, du behauptest, du würdest eine Funktion definieren, tust es aber nicht.
-
Hatte ich schon irgendwie vor.
ICh will ein Stein, Schere, Papier Spiel in OOP realisieren.
Weiß aber nicht wie ich die Schleifen ersetzten soll.
Das hier ist total unfertig, ist mir klar.@manni66 mach ich das nicht?
-
@Lou-Cyphr3 sagte in undefinierter Verweis wegen Konstrukoren?:
@manni66 mach ich das nicht?
Offenbar nicht, sonst würde sich der Linker nicht beschweren.
-