undefinierter Verweis wegen Konstrukoren?
-
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.
-
-
-
@Lou-Cyphr3 Vor einer Stunde ist dir gesagt worden du sollst vollständigen Code und den Compileraufruf zeigen.
-
den Code habe ich vollständig gepostet und
den Compileraufrufg++ -o bin/Debug/refresh obj/Debug/main.o obj/Debug/src/figur.o -static -lboost_unit_test_framework obj/Debug/main.o: In Funktion »main«: 13: Warnung: undefinierter Verweis auf »Anzeige::print_Wahl()« collect2: error: ld returned 1 exit status Process terminated with status 1 (0 minute(s), 0 second(s)) 2 error(s), 0 warning(s) (0 minute(s), 0 second(s))