Seite 1 von 1

Designer lädt wwWidgets Plugin nicht

Verfasst: 27. Juni 2008 19:46
von reimer
Designer meint, es wäre ungültig :|

Die Widget Bibliothek wird nicht gefunden:

Code: Alles auswählen

otool -L /Developer/Applications/Qt/Designer.app/Contents/MacOS/Designer 
/Developer/Applications/Qt/Designer.app/Contents/MacOS/Designer:
QtDesignerComponents.framework/Versions/4/QtDesignerComponents (compatibility version 4.3.0, current version 4.3.4)
QtDesigner.framework/Versions/4/QtDesigner (compatibility version 4.3.0, current version 4.3.4)
QtAssistant.framework/Versions/4/QtAssistant (compatibility version 4.3.0, current version 4.3.4)
QtScript.framework/Versions/4/QtScript (compatibility version 4.3.0, current version 4.3.4)
QtXml.framework/Versions/4/QtXml (compatibility version 4.3.0, current version 4.3.4)
QtGui.framework/Versions/4/QtGui (compatibility version 4.3.0, current version 4.3.4)
/System/Library/Frameworks/Carbon.framework/Versions/A/Carbon (compatibility version 2.0.0, current version 128.0.0)
/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 824.34.0)
QtNetwork.framework/Versions/4/QtNetwork (compatibility version 4.3.0, current version 4.3.4)
QtCore.framework/Versions/4/QtCore (compatibility version 4.3.0, current version 4.3.4)
/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.3)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 88.1.3)
/usr/lib/libiconv.2.dylib (compatibility version 5.0.0, current version 5.0.0)
/System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices (compatibility version 1.0.0, current version 22.0.0)
/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.4.0)
/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
Ich bemerkte dann, dass es nicht als Framework erzeugt wird.
Ich fügte folgende Zeilen hinzu in widgets.pro

Code: Alles auswählen

mac : CONFIG += lib_bundle
und in plugin.pro

Code: Alles auswählen

mac : LIBS += -L../widgets/wwwidgets4.framework -lwwwidgets4
#mac : LIBS += -L../widgets/wwwidgets4.framework/Versions/0 -lwwwidgets4

Dann bekomm ich diesen Fehler:

Code: Alles auswählen

/usr/libexec/gcc/i686-apple-darwin8/4.0.1/libtool: can't locate file for: -lwwwidgets4
/usr/libexec/gcc/i686-apple-darwin8/4.0.1/libtool: file: -lwwwidgets4 is not an object file (not allowed in a library)
Was tu ich falsch?

Re: Designer lädt wwWidgets Plugin nicht

Verfasst: 28. Juni 2008 08:55
von patrik08
reimer hat geschrieben:Designer meint, es wäre ungültig :|

Was tu ich falsch?
der fehler ist sicher nicht bei dir..

4.3.4 von mac hat bei mir auch immer viel probleme gemacht...
seit ich 4.4 installiert habe ist viel anders....

frage mal wysota http://www.qtcentre.org/forum/private.php?do=newpm&u=11 ob er die wwWidgets auf mac getestet hat..
er ist sehr hilfsbereit .. auf English ... ( da ich denke das er nur window & linux hat)

Wen du nur einen teil brauchst geht es auch ohne designer integration....

Verfasst: 28. Juni 2008 11:57
von reimer
Danke für den Hinweis, das ist ja schon mal etwas :)

Ich vermute aber, dass es trotzdem noch an den Projektdateien liegt. Mit den "originalen" Projektdateien wird einfach nur ein wwwidgets4.dylib erzeugt und unter /Library/Frameworks abgelegt. Alle anderen Qt-Bibliotheken sind dagegen echte Framework-Bundles.

Wenn ich aber wie beschrieben die Konfiguration

Code: Alles auswählen

CONFIG += lib_bundle
benutze, findet der Kompiler die Bibliothek nicht mehr. Ich finde mich in den Projektdateien von wysota auch schlecht zurecht, weil meine Qt-Kenntnisse noch nicht so gut sind.

Ihn habe ich auch schon angeschrieben, aber das dauert noch, bis er Zugriff auf einen Mac hat und wird mir vor nächster Woche schon mal gar nicht weiterhelfen können. Ich möchte ihn auch nicht zuspammen, schließlich will ich ja, dass er mir auch hilft ;)

Ich suche mal weiter nach anderen Plugins und guck mir deren Projektdateien an, vielleicht hab ich Glück und finde raus, wie bei denen die Frameworks gebaut werden, die auch funktionieren.

Verfasst: 8. Februar 2009 22:47
von GoaSkin
Nachdem ich mich vor ein paar Tagen damit endlos beschäftigt habe, habe ich es dann irgendwann hinbekommen.

Der Fehler liegt nicht an QT sondern an wwwidgets selbst, genauer gesagt an den Projekt-Dateien.

In der widgets.pro ist die Zeile

Code: Alles auswählen

CONFIG += lib_bundle
(wie beschrieben) richtig. Damit das Designer-Plugin das dadurch gebaute Framework auch nutzen kann, bedarf es dort Änderungen:

Dort muß die LIBS-Zeile wie folgt lauten:

Code: Alles auswählen

LIBS += -framework wwwidgets4
Frameworks sind keine dynamischen Bibliotheken im eigentlichen Sinne. Mit -l und -L-Anweisungen kann man sie nicht nutzen. Die eigentliche Bibliothek im Bundle trägt auch nicht die Endung dylib.

Weiter bleibt zu wwwidgets4 anzumerken:

- daß man das Framework mit XCode nicht bauen kann (dazu taugen die Projekt-Dateien nicht)

- man wwwidgets4 als solches zwar auch als Bibliothek (dylib) bauen kann, allerdings das Designerplugin-Projekt diese nicht laden kann und dadurch vom Designer selbst nicht geladen wird. Das Problem liegt in der Symbol-Tabelle des Designer-Plugins, das nicht ordnungsgemäß auf die Bibliothek referenziert. Über den Umweg "Framework" geht es aber...

- Wenn es (wie beschrieben) läuft, funktioniert es fast einwandfrei. Sämtliche Widgets arbeiten ordentlich. Einziger Haken: Je nach Nutzung im Designer kann es passieren, daß das eigentliche Designer-Menü verschwindet und lediglich ein wwwidgets4-Menü zu sehen ist. Um das Designer-Menü wieder herzustellen, einfach mit Apfel+N ein neues Hauptfenster erstellen und dieses gleich wieder schließen! Dies bewirkt eine Wiederherstellung des Anwendungsmenüs.

- einen weiteren kleinen Bug gibt es in den Farb-Buttons: Sobald eine Slot-Funktion des Buttons verwendet wird, gibt dieser sein Aqua-Design auf und wird rechteckig.