Seite 1 von 1

Sehr Seltsame Fehlermeldung...

Verfasst: 4. Februar 2009 11:42
von Mr.Undercover
Hallo alle zusammen,

ich habe gestern noch an einen Projekt geschrieben und heute als ich das Projekt wieder compilieren wollte funktionierte es nicht mehr...
Ich habe versucht ein systemtray icon zu implementieren, als das nicht funkionierte habe ich es einfach wieder rausgenommen mit dem resultat dass es nicht mehr funktioniert!

Fehlermeldung:
1>------ Build started: Project: Tool, Configuration: Debug Win32 ------
1>Linking...
1>moc_tool.obj : error LNK2019: unresolved external symbol "private: void __thiscall Tool::on_graphicsView_customContextMenuRequested(class QPoint)" (?on_graphicsView_customContextMenuRequested@Tool@@AAEXVQPoint@@@Z) referenced in function "public: virtual int __thiscall Tool::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@Tool@@UAEHW4Call@QMetaObject@@HPAPAX@Z)
1>C:\....\Visual Studio 2005\Projects\Tool\Debug\Tool.exe : fatal error LNK1120: 1 unresolved externals
1>Build log was saved at "file://c:\....\Visual Studio 2005\Projects\Tool\Tool\Debug\BuildLog.htm"
1>Tool - 2 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Problem mit "roher gewalt" gelöst!

Verfasst: 4. Februar 2009 12:02
von Mr.Undercover
Also ich habe bei den generated files diese Zeile auskommentiert (weil der Compiler ja auf diesen hinweis gibt)....

auskommentierte Zeile:
//case 0: on_graphicsView_customContextMenuRequested((*reinterpret_cast< QPoint(*)>(_a[1]))); break;

was bewirkt das denn ? bzw. wieso ?

Verfasst: 4. Februar 2009 12:48
von solarix
make distclean; qmake; make

keine Ahnung wie das im VS2005 geht.. evt. "Projektmappe neu erstellen" oder so...

Verfasst: 4. Februar 2009 13:02
von erpheus
Hi,

Erst mal ne Frage: Funktioniert es denn wenn Du diese Zeile auskommentierst?
Dann einen gut gemeinten Rat: Finger weg vom generierten Code. Auf den moc, der diesen erzeugt kann man sich schon verlassen.

Zu deiner Fehlermeldung. Diese meldet einen Linkerror.
Dies bedeudet folgendes:
Der moc von QT erzeugt für den C++Compiler verständlcihen Code. Dies ist notwendig weil dieser So Dinge wie Signals und Slots nicht kennt.
Dann wird dein Programm vom Compiler erfolgreich übersetzt und erzeugt die entsprechenden Objectfiles. Diese werden nun vom Linker zu einem Lauffähigen Programm zusammen geschnürt, was nun bei Dir schiff geht.
Grund? Ihm wird ein Objectfile fehlen. Warum das So ist?
Vermutlich steht im Pro-File eine Datei drinn die es nicht mehr gibt. Was ich jetzt einfach deshalb vermute, weil Du schreibst das Du Code entern hast und ich Vermute das Du hierbei ganze Klassen entfernt hast.

Wenn es nicht daran Liegt wäre eine Wiedergabe deine Programmarchitektur Sinnvoll.

Verfasst: 4. Februar 2009 21:09
von Mr.Undercover
Erstmal wenn ich die Zeile auskommentiere funktioniert das komplette Programm... Wenn ich die Zeile wieder mitrein nehme funktioniert nichts mehr :-(

Nach welchen Link sucht es denn ? Soviel habe ihc auch noch mitbekommen dass es sich um einen deadlink handelt....Aber nicht so richtig nach was...

Verfasst: 4. Februar 2009 21:25
von erpheus
Vermutlich steht im Pro-File eine Datei drinn die es nicht mehr gibt
hast Du das mal überprüft?
Vergiss die Quellen für dein Icon wie das png oder so nicht. Leer mal deinen debug-ordner, damit qmake sauber alle files erstellt bei eclipse heist das Project-Clean.
GraphicsView hat schlieslich was mit Bildern zu tun und den Teil mit deinem Icon hast Du entfernt also ist da mit sicherheit irgendwas noch drin.

Verfasst: 5. Februar 2009 10:49
von Mr.Undercover
also ein Clean habe ich schon ein paar mal übern Projekt geschossen !

Verfasst: 5. Februar 2009 12:07
von erpheus
Was ist den bei folgenden Lösungsvorschlägen bisher rausgekommen:
Vermutlich steht im Pro-File eine Datei drinn die es nicht mehr gibt
hast Du das mal überprüft?
evt. "Projektmappe neu erstellen" oder so...
<-- neu erstellenhilft bei vs sehr heufig.

Und dann ein letztes mal noch eine Antwort auf folgende Frage:
Nach welchen Link sucht es denn ?
Antwort:
Ich habe versucht ein systemtray icon zu implementieren, als das nicht funkionierte habe ich es einfach wieder rausgenommen

+

Code: Alles auswählen

unresolved external symbol "private: void __thiscall Tool::on_graphicsView_customContextMenuRequested(class QPoint)
=
Er sucht Information zum Thema Bilder also das was du rausgenommen hast ist nicht vollständig drause. :idea: