Qt Phonon Anwendung - Static oder Shared Build mit Libraries

Alles zu Entwicklungsumgebungen und Editoren für Qt
Antworten
herkulesamstart
Beiträge: 1
Registriert: 10. September 2012 13:33

Qt Phonon Anwendung - Static oder Shared Build mit Libraries

Beitrag von herkulesamstart »

Hallo,

ich habe eine kleine Anwendung zum Annotieren für Videos erstellt und dazu die phonon Bibliothek benutzt. Jetzt möchte ich gerne, dass man die Anwendugn auch auf anderen Rechnern, auf denen kein Qt, phonon oder die phonon-backends installiert sind nutzen kann.

Mir ist dabei eigentlich egal, ob ich die nötigen libraries nun statisch oder dynamische verlinke. Allerdings habe ich bisher weder das eine noch das andere hinbekommen :(

Für das dynamische verlinken ist mir nicht aber ganz klar, welche Bibs genau ich nun brauche und wie ich diese dann dem Projekt im QtCreator so beifügen kann, dass die Anwendung diese hinterher im eigenen Verzeichnis findet und benutzt. Daher habe ich mich erstmal auf das static build konzentriert und folgdene Anleitung für static builds habe ich bereits ausprobiert:
http://qtnbeyond.blogspot.de/2011/03/st ... or-in.html

also habe ich mir folgendes Paktet heruntergeladen: qt-everywhere-opensource-src-4.8.2
.. und qt mit der -static option gebaut:

Meine .pro file sieht zur Zeit so aus:

Code: Alles auswählen

#-------------------------------------------------
#
# Project created by QtCreator 2012-09-06T09:18:52
#
#-------------------------------------------------

QT       += core gui phonon

TARGET = VideoAnnotator
TEMPLATE = app

CONFIG += static

#LIBS += -L"$$_PRO_FILE_PWD_/qtgui/usr/lib/qt47/" -lphonon -lqtgui

...

Meine Anwendung konnte ich nun auch bauen und ist auch wesenlich größer geworden als beim shared build, allerdings bekomme ich, wenn ich die Anwendung ausführe folgenden Fehler und einen Blue Screen im Anwendungsfenster:
WARNING: bool Phonon::FactoryPrivate::createBackend() phonon backend plugin could not be loaded

(VideoAnnotator:5461): Gtk-CRITICAL **: IA__gtk_widget_style_get: assertaion `GTK_IS_WIDGET (widget)' failed

(VideoAnnotator:5461): Gtk-CRITICAL **: IA__gtk_widget_style_get: assertion `GTK_IS_WIDGET (widget)' failed
WARNING: bool Phonon::FactoryPrivate::createBackend() phonon backend plugin could not be loaded

...

(VideoAnnotator:5461): Gtk-CRITICAL **: IA__gtk_widget_style_get: assertion `GTK_IS_WIDGET (widget)' failed

WARNING: bool Phonon::FactoryPrivate::createBackend() phonon backend plugin could not be loaded
WARNING: Phonon::createPath: Cannot connect Phonon::MediaObject ( no objectName ) to Phonon::VideoWidget ( VideoWidget ).
WARNING: bool Phonon::FactoryPrivate::createBackend() phonon backend plugin could not be loaded
WARNING: Phonon::createPath: Cannot connect Phonon::MediaObject ( no objectName ) to Phonon::AudioOutput ( no objectName ).
WARNING: bool Phonon::FactoryPrivate::createBackend() phonon backend plugin could not be loaded
WARNING: bool Phonon::FactoryPrivate::createBackend() phonon backend plugin could not be loaded

(VideoAnnotator:5461): Gtk-CRITICAL **: IA__gtk_widget_style_get: assertion `GTK_IS_WIDGET (widget)' failed
QNativeImage: Unable to attach to shared memory segment.
X Error: BadDrawable (invalid Pixmap or Window parameter) 9
Major opcode: 62 (X_CopyArea)
Resource id: 0x0
X Error: BadDrawable (invalid Pixmap or Window parameter) 9
Major opcode: 62 (X_CopyArea)
Resource id: 0x0

...
Ich hoffe jemand von euch kann mir dabei behilflich sein! Da es so schwer ja nun nicht sein kann, wenn qt phonon nun standardmäßig schon dabei hat oder?


Beste Grüße,
herkulesamstart
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: Qt Phonon Anwendung - Static oder Shared Build mit Libra

Beitrag von Christian81 »

Nur weil Du Qt statisch baust geht Dein Programm nicht so ohne weiteres auf einem anderen Linux. Dafür gibt es rpms / deb-Pakete und Co. Und dort kann man auch korrekt Abhängigkeiten definieren.
Und das mit den Backends kommt daher dass ein statisches Qt keine Plugin-Unterstützung bietet (wäre ja sonst irgendwie sinnlos) und daher die backends auch in das statische Qt mit rein müssen. Ob und wie das geht - keine Ahnung.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Antworten