QWT in Windows installeiren und in QTCREATOR einbinden

Verschiedenes zu Qt
Antworten
GrooveXT
Beiträge: 26
Registriert: 18. September 2008 17:10

QWT in Windows installeiren und in QTCREATOR einbinden

Beitrag von GrooveXT »

Hallo zusammen,
vorweg ich habe das Forum durchstöbert, viel für mein Problem mitgenommen, aber scheiter immer noch.

Folgendes:
Ich habe bisher mit einer kommerziellen Qt 4.4.3 Lizenz und MS VS2008 gearbeitet. Nun möchte ich ein eigenes Projekt auf die Beine stellen und deshalb mit der neuen Version 4.6 in der LGPL ausführung arbeiten.

Nun gut Qt 4.4.3 deinstalliert und Qt4.6 drauf. Der QtCreator efällt mir sehr gut und ich würde auch von MS VS wegkommen, daher sollte schon alles damit funktionieren.

Hacken:
Ich brauche QWT und nach nun 2 Tagen Terror, Tränen und Verzweifelung bin ich am Ende. Ich habe mit qwt mittels svn in der neusten Version besorgt und die INSTALL Notizen rauf und rutner gelesen und probiert.
Da es mit dem QtCreator arbeiten sollte, habe ich mich zuerst für die mingw Version entschieden -> make gibts nicht, und mingw-makexx beendet sich sofort ohne Arbeit. Qmake selber röddelt nur für 1 Sekunde und ist dann auch fetig, ebenfalls ohne Ergebnis
Daraufhin habe ich es mit dem QtCreator selbst kompiliert --> erfolg, habe die qwt5.dll/qwt5d.dll und die jeweiligen Designer dll erstellt. Kopiere ich die nun in 2009.05/bin/desginer findet sie QtCreator, sagt mir aber das diese Version mit dem mingw übersetzt wurde, er aber eine mit vs2008 bräuchte. Im QtDesigner sagt er wiederrum, er könnte nix mit debug_relase dlls anfangen.

Ich habe jetzt keine Ahnung mehr was ich noch probieren soll.

Irgendwelche weiterführenden Ideen?

PS: Die VS Anleitung zum übersetzen von qwt habe ich auch ausprobiert, aber nmake gibt es genauso wenig wie make auf meinem Windows Rechner.

OS: win 7 64 Prof
drizzt
Beiträge: 29
Registriert: 9. Oktober 2009 13:37

Beitrag von drizzt »

du darfst NUR die release dll des desingerplugins in den \2010.01\qt\plugins\designer ordner kopieren... der designer kann mit debug dll's nix anfangen... (mischen von release und debug geht nicht unter windows...)
Uwe
Beiträge: 176
Registriert: 9. Oktober 2005 13:37
Wohnort: München

Beitrag von Uwe »

Das Qwt Plugin zieht wiederum die Qwt Bibliothek. Also wenn Dein Qt Creator im Release Modus gebaut wurde ( wovon ich ausgehe ) müssen Plugin und die zugehörige Qwt Bibliothek ( muss der Creator über den PATH finden können ! ) ebenfalls im Release Modus gebaut sein.

Wenn Du den ganzen Release/Debug Käse vermeiden willst wechsle doch auf ein ordentliches Betriebssystem.

Uwe
bender24
Beiträge: 12
Registriert: 16. April 2010 08:39

Beitrag von bender24 »

hallo,

ich greife diesen thread nochmal auf, da mein problem thematisch ähnlich ist.

ich verwende unter windows den qt creator 1.3.1 mit qt4.6.2 mit qwt5.2.1...
das Kompilieren hat soweit geklappt auch das Einbinden und so weiter. Ich kann auch mit dem Qt Designer die qwt Widgets in ein Formular einbinden, d.h. sie erscheinen auch in der Liste auswählbarer Widgets.

Hier das Problem:

Ich will im Creator, wenn ich auf meine Formular-Datei klicke, auch diese Widget anzeigen lassen. Wie bekomme ich das hin?

Unter "C:\Qt\2010.02.1\qt\plugins\designer" befindet sich auch die qwt_designer_plugin5.dll.

Hoffe ihr könnt mir helfen...

Viele Grüße
JanDos
Beiträge: 8
Registriert: 5. Dezember 2009 16:37

Beitrag von JanDos »

Hi,
ich habe ähnlichse Problem wie -bender24-.
Im QtDesigner sind QwtWidgets drin, aber nicht im qcreator. 'Im Formulareditor steht folgendes:
Failed Plugins

C:/Qt/qtcreator-1.3.1/bin/designer/qwt_designer_plugin5.dll

Das Plugin 'C:/Qt/qtcreator-1.3.1/bin/designer/qwt_designer_plugin5.dll' verwendet eine inkompatible Qt-Bibliothek. Erforderlicher build-spezifischer Schlüssel "Windows msvc release full-config", erhalten "Windows mingw release full-config"

Wie kann ich es hinkriegen damit es funktioniert, geht es überhaupt? Ich benutze Win xp ; Qt 4.5.3 und qwt 5.1.2

Danke im Vorraus
Jan Dos
bender24
Beiträge: 12
Registriert: 16. April 2010 08:39

Beitrag von bender24 »

ich habe es bis heute auch nicht hinbekommen. ich benutze einfach den qtdesigner um mein user interface zu gestalten, speicher die datei ab, kompiliere das prog im qtcreator neu und die geänderte umgebung ist eingebunden. ich finde das nicht allzu umständlich.

wenn ich deine fehlermeldung richtig verstehe will qtcreator auch eine mit msvc(microsoft visual c) kompilierte bibliothek. ich hab aber kein msvc und kann es deswegen nicht ausprobieren.

grüße
trendyAndy
Beiträge: 54
Registriert: 27. März 2009 15:01

Beitrag von trendyAndy »

Hallo,

soweit ich das weiß packt der Creator das nicht. Mit dem Designer geht das alles wunderbar. Wenn ich mich recht entsinne habe ich mit dem Creator eine Qt Designer Form Class erstellt. Dann mit dem Designer das ui file geöffnet, meine Qwt Widgets integriert und gespeichert. Wenn man jetzt mit Creator das Projekt wieder öffnet, dann sind die Qwt Widgets drin aber halt nur als durchsichtige Felder mit Rahmen.
Aber was solls, ich mach das halt auf dem Weg bis ich einen besseren finde.

Gruß
JanDos
Beiträge: 8
Registriert: 5. Dezember 2009 16:37

Beitrag von JanDos »

Hi,
Danke für den Tip, wenn ich es genauso mache kriege ich folgenden Fehler

C:\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\mingw32\bin\ld.exe: cannot find -l-lQtGuid4
collect2: ld returned 1 exit status
mingw32-make[1]: *** [debug\outmaske.exe] Error 1
mingw32-make: *** [debug] Error 2
Beendet mit Rückgabewert 2.
Fehler beim Erstellen des Projekts outmaske
Beim Ausführen des Build-Schritts 'Make'

Was könnte es sei ? Kenne mich mit Qt/qwt nicht so gut aus.
Für jede Hilfe dankbar.
JanDos
trendyAndy
Beiträge: 54
Registriert: 27. März 2009 15:01

Beitrag von trendyAndy »

Hallo,

ich denke das ist das was Uwe mit dem Debug/Release mist bei windoof gemeint hat. Ich builde das Projekt immer im Release Modus weil ich im Debug Modus immer Fehler bekommen habe. Einfach in den Buildeinstellungen statt Debug den Release Modus angeben. Dann ist alles im Release Ordner in deinem Projektverzeichnis und geht (denke ich :wink: )
JanDos
Beiträge: 8
Registriert: 5. Dezember 2009 16:37

Beitrag von JanDos »

Hi,
funz auch nicht, aber vielleicht liegt es am pro File??, ich habe es nämlich irgendwo abgeschrieben für qwt 5.1.2 und qt 4.5.3

Code: Alles auswählen

TARGET = ausgabe
TEMPLATE = app
SOURCES += main.cpp \
    widget.cpp
HEADERS += widget.h \
    ui_widget.h
FORMS += widget.ui

QWT_ROOT = C:\Qt\qwt-5.1.2

INCLUDEPATH += $${QWT_ROOT}/src

LIBS += -L$${QWT_ROOT}/lib -l$$qwt

export LD_LIBRARY_PATH=$HOME/qwt-5.1.2/lib
Ich benutze Win Xp
Danke
JanDos[/code]
trendyAndy
Beiträge: 54
Registriert: 27. März 2009 15:01

Beitrag von trendyAndy »

Bin mir jetzt nicht sicher aber der sucht doch nach einer Qt lib und nicht nach der Qwt-Lib oder??
Hast du die Path Variable richtig angepaßt?
bender24
Beiträge: 12
Registriert: 16. April 2010 08:39

Beitrag von bender24 »

meine pro Datei sieht wie folgt aus:

Code: Alles auswählen

include( C:\qwt-5.2.1/qwtconfig.pri )
SOURCES += main.cpp \
    m_window.cpp \
    Serial.cpp \
    ringbuffer.cpp \
    thread.cpp
INCLUDEPATH += C:\qwt-5.2.1\include
LIBS += C:\qwt-5.2.1\lib\qwt5.dll
CONFIG += release
FORMS += m_window.ui
HEADERS += m_window.h \
    ringbuffer.h \
    thread.h \
    Serial.h
so funktionierts bei mir. Dann nur noch das Programm im release-mode kompilieren. Debuggen kann ich leider auch nicht. SOURCES und HEADERS musst du natürlich an dein Projekt anpassen...
solarix
Beiträge: 1133
Registriert: 7. Juni 2007 19:25

Beitrag von solarix »

Bezüglich "QtCreator und Custom Widgets": Es ist unlogisch, dass der Creator mit einem anderen Compiler als das SDK übersetzt wurde und wird hoffentlich von den Trolls irgendwann bereinigt. Habt ihr mal versucht, den Creator selbst mit dem mingw zu übersetzen? Dann sollte doch die Plugin-Geschichte kein Problem mehr sein...

@JanDos: "-l-lQtGuid4 " ist ein kompischer Linkeraufruf.. erwarten würde ich "-lQtGui4". Kannst du mal den ganzen Linkeraufruf zeigen? Weiters ist "export LD_LIBRARY_PATH=$HOME/qwt-5.1.2/lib" in der Profile extrem schräg (zum einen weil es Unix ist und zum anderen weil das für den Dynamic-Loader ist.. und nicht für den Linker).
JanDos
Beiträge: 8
Registriert: 5. Dezember 2009 16:37

Beitrag von JanDos »

Danke an euch alle, jetzt funzt es!
mein pro File sieht so aus :

Code: Alles auswählen

include (C:\Qt\qwt-5.1.2/qwtconfig.pri)
SOURCES += main.cpp \
    ausgabe.cpp
INCLUDEPATH += C:\qwt-5.2.1\src
LIBS += C:\qwt-5.2.1\lib\qwt5.dll
CONFIG += release
FORMS += ausgabe.ui
HEADERS += ausgabe.h\
          ui_ausgabe.h
@solarix, ja so ist es wenn man doof irgendwo abschreibt :? :D
Uwe
Beiträge: 176
Registriert: 9. Oktober 2005 13:37
Wohnort: München

Beitrag von Uwe »

JanDos hat geschrieben:ja so ist es wenn man doof irgendwo abschreibt :? :D
Bevor das Nichtverstehen + Abschreiben munter so weitergeht:

a) qwtconfig.pri enthält Anweisungen zum Bauen der Qwt Library und hat in der Projekt Datei einer Qwt Anwendung absolut nichts verloren.
b) Dein Projekt File baut gegen das Build Directory von Qwt. Vorgesehen ist dagegen, daß Du Qwt nach dem Bauen mit "make install" installierst und mit den Installationsverzeichnissen arbeitest.

Letztendlich ist "DEFINES += QWT_DLL" die einzige dokumentationswürdige Anweisung ( wenn man DLLs arbeitet).

Im Qwt Paket ist übrigens auch eine (kaum gepflegte) Datei "qwt.prf" enthalten. Wenn man die anpasst und richtig installiert kann man einfach "CONFIG += qwt" in die Projekt Datei schreiben. Wenn man die für das Bauen einer Qwt Applikation benötigten Anweisungen für die eigene Projekt Datei benötigt, ist das eher eine sinnvolle Quelle zum Kopieren.

Uwe
Antworten