Hallo!
Bin mir nicht ganz sicher ob dies nicht doch in den C++ bereich gehört, oder hier doch richtig ist.
Folgendes Problem:
Ich habe ein Hauptklasse welche ich als Singleton implementiert habe. Das klappt soweit gut, nur wenn ich in einem Plugin, welches mittels QPluginLoader geladen wird, auf diese Klasse zugreife, stürtzt es ab und ich bekomme eine Fehlermeldung, dass das Symbol undefiniert sei.
Habs schon mit QPluginLoader::setLoadHints(QLibrary::ResolveAllSymbolsHint); probiert, jedoch ohne Erfolg.
Hat jemand nen hilfreichen Tipp?
[gelöst] QPluginLoader + Singleton
[gelöst] QPluginLoader + Singleton
Zuletzt geändert von BananaMan am 23. Mai 2010 13:53, insgesamt 1-mal geändert.
Bitte etwas genauer 
Was ich bisher verstanden habe:
* Du hast eine Hauptanwendung
* Du erweiterst diese über Plugins
* Dein Plugin soll auf ein Singleton zugreifen
* "undefined symbol" (eigentlich "symbol lookup error", oder?)
Wenn du deine Hauptanwendung nicht in eine Lib gesteckt hast, und dein Plugin auch nicht dagegen gelinkt ist, sollte das Plugin nicht mal ordentlich linken (undefined reference to ...).
Kannst du mal die genaue Fehlermeldung posten, und etwas zu den anderen Punkten von oben sagen?
Was ich bisher verstanden habe:
* Du hast eine Hauptanwendung
* Du erweiterst diese über Plugins
* Dein Plugin soll auf ein Singleton zugreifen
* "undefined symbol" (eigentlich "symbol lookup error", oder?)
Wenn du deine Hauptanwendung nicht in eine Lib gesteckt hast, und dein Plugin auch nicht dagegen gelinkt ist, sollte das Plugin nicht mal ordentlich linken (undefined reference to ...).
Kannst du mal die genaue Fehlermeldung posten, und etwas zu den anderen Punkten von oben sagen?
Danke für die Antwort!
Habe das Problem jetzt nachgecodet (wäre sonst zu unübersichtlich ^^).
Wenn ich in dem Programm (z.B. mainclass.cc:20) auf meine Singleton Klasse zugreife (MainClass::instance()->helloWorld();) funktioniert das Problemlos. (wäre komisch wenn nicht ^^).
Aber sobald ich ein Plugin via QPluginLader lade, welcher den selben Befehl ausführt, bekomme ich folgende Fehlermeldung:
./Test: symbol lookup error: /home/bananaman/Test/TestPlugin/libTestPlugin.so.1.0.0: undefined symbol: _ZN9MainClass8instanceEv
Vielen Dank für die Hilfe!
Habe das Problem jetzt nachgecodet (wäre sonst zu unübersichtlich ^^).
Wenn ich in dem Programm (z.B. mainclass.cc:20) auf meine Singleton Klasse zugreife (MainClass::instance()->helloWorld();) funktioniert das Problemlos. (wäre komisch wenn nicht ^^).
Aber sobald ich ein Plugin via QPluginLader lade, welcher den selben Befehl ausführt, bekomme ich folgende Fehlermeldung:
./Test: symbol lookup error: /home/bananaman/Test/TestPlugin/libTestPlugin.so.1.0.0: undefined symbol: _ZN9MainClass8instanceEv
Vielen Dank für die Hilfe!
- Dateianhänge
-
- Test.tar.gz
- (1.42 KiB) 55-mal heruntergeladen