Verwendung von Signals in Pluginklassen
TestPlugin ist ein separates Projekt. Es vererbt DSGPluginInterface. Das Interface gehört aber gar nicht zu dem Projekt, sondern stammt ja aus meiner Hauptapplikation. Wenn ich das DSGPluginInterface.h im HEADER-Bereich des Plugin-Projektes aufführe, kommt: WARNING: Failure to find: dsgplugininterface.h.
In der pro-Datei meiner Hauptapplikation ist dsgplugininterface bei den HEADERN dabei, die Appliaktion kompiliert auch ohne Fehler, leider aber das Plugin nicht
@solarix: Hab ich leider auch schon.
dennoch danke für Euro Tips!
In der pro-Datei meiner Hauptapplikation ist dsgplugininterface bei den HEADERN dabei, die Appliaktion kompiliert auch ohne Fehler, leider aber das Plugin nicht
@solarix: Hab ich leider auch schon.
dennoch danke für Euro Tips!
relativer Pfad in der pro-Datei?
[EDIT] am besten zeigt du uns die komplette Profile-Datei des Plugins sowie die include-Anweisung des Plugin-Interfaces in der konkreten Plugin-Implementierung 
Code: Alles auswählen
HEADERS += ../hauptprojekt/include/dsgplugininterface.h
Zuletzt geändert von solarix am 3. Mai 2010 19:07, insgesamt 1-mal geändert.
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Was soll das? dsplugininterface.h muss schon im Hauptprojekt sein...solarix hat geschrieben:relativer Pfad in der pro-Datei?
Code: Alles auswählen
HEADERS += ../hauptprojekt/include/dsgplugininterface.h
Windows oder Linux?
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
Acchhh, waren mehrere Sachen. 1. hatte ich noch ne alte dsgplugininterface.h da rumliegen und 2. war die falsche damit verbunden, da war wohl das Q_OBJECT Makro noch nicht drin. Also es kompiliert jetzt, kommt noch zu Laufzeitfehlern, das ist sicher ne andere Baustelle 
Danke Euch erstmal für Eure Geduld
Danke Euch erstmal für Eure Geduld
Geht das denn gut, wenn der Header zusätzlich zum hauptprojekt in jedem Plugin gemoced und in die DLLs gelinkt wird?
Denn definitiv braucht das Plugin selber Zugang zur vtable des Interfaces beim Linken.
Ich hab damals für meine Projekte eine größere lib erstellt (war sowieso nötig), gegen die die Plugins gelinkt haben und in denen die moc-Kompilate gelinkt wurden.
Denn definitiv braucht das Plugin selber Zugang zur vtable des Interfaces beim Linken.
Ich hab damals für meine Projekte eine größere lib erstellt (war sowieso nötig), gegen die die Plugins gelinkt haben und in denen die moc-Kompilate gelinkt wurden.
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Hmm, vielleicht hat der Laufzeitfehler auch genau damit zu tun. Ich habe sonst nichts verändert. Ich kann in meinem Plugin-Projekt halt nicht gegen eine Library linken, in der sich die Anweisungen für das Interface befinden, weil es nicht teil einer dynamischen Library ist, sondern in der Hauptapplikation drin steckt.Geht das denn gut, wenn der Header zusätzlich zum hauptprojekt in jedem Plugin gemoced und in die DLLs gelinkt wird?
Wie könnte das alternativ gelöst werden, oder sollte man solches Interface dann besser in eine dynamische Lib auslagern?
Da wäre dann immer der beste Zeitpunkt, solche Fehler auch zu postenhel800 hat geschrieben:Hmm, vielleicht hat der Laufzeitfehler auch genau damit zu tun.
Ansonsten ist es mit Qt nicht wirklich schwer, eine eigene lib zu erstellen. Im jeweiligen .pro TEAMPLATE auf lib setzen.
Ich selber verwende aber schon länger keine .pros mehr, finde cmake angenehmer (und ich hab mittlerweile eigentlich mehr mit C++ ohne GUI zu tun, da macht sich qmake zum Verwalten doch nicht so gut