[gelöst] Qwt Installation
[gelöst] Qwt Installation
Hallo,
sitze jetzt hier schon seit Tagen rum und versuche Qwt 5.2.0 mit Qt 4.6 zum laufen zu bringen, allerdings will mir das einfach nicht gelingen.
Das Kompilieren von Qwt klappt auf meinem Rechner über Visual Studio 2008 CMD mit 'qmake qwt.pro' und anschließend 'nmake' schon mal nicht. Hier krieg ich an unterschiedlichen Stellen aber am häufigsten nach 'qwt_valuelist.h' einen Error (cl.exe und nmake.exe: Rückgabe-Code 0x2).
Habe mir die libs und dlls jetzt auf nem anderen Rechner kompiliert. Habe diese soweit überall eingefügt, wo diese benötigt werden (Qt lib und bin Ordner und bei den Projekteigenschaften unter 'Linker -> Eingabe') und auch die PATH-Variable entsprechend angepasst.
Wenn ich nun allerdings bspw. einen Qwt_Plot an irgendeiner Stelle im Programm erstelle, bekomme ich beim Starten der Applikation folgende Fehlermeldung:
"QWidget: Must construct a QApplication before a QPaintDevice"
Die QApplication wird allerdings in der ersten Zeile in der main() Funktion erstellt...
Wäre wirklich nett, wenn mir hier jemand weiterhelfen könnte, da ich für ein Projekt für die Berufsschule dringend Qwt brauche.
Grüße
Robert
sitze jetzt hier schon seit Tagen rum und versuche Qwt 5.2.0 mit Qt 4.6 zum laufen zu bringen, allerdings will mir das einfach nicht gelingen.
Das Kompilieren von Qwt klappt auf meinem Rechner über Visual Studio 2008 CMD mit 'qmake qwt.pro' und anschließend 'nmake' schon mal nicht. Hier krieg ich an unterschiedlichen Stellen aber am häufigsten nach 'qwt_valuelist.h' einen Error (cl.exe und nmake.exe: Rückgabe-Code 0x2).
Habe mir die libs und dlls jetzt auf nem anderen Rechner kompiliert. Habe diese soweit überall eingefügt, wo diese benötigt werden (Qt lib und bin Ordner und bei den Projekteigenschaften unter 'Linker -> Eingabe') und auch die PATH-Variable entsprechend angepasst.
Wenn ich nun allerdings bspw. einen Qwt_Plot an irgendeiner Stelle im Programm erstelle, bekomme ich beim Starten der Applikation folgende Fehlermeldung:
"QWidget: Must construct a QApplication before a QPaintDevice"
Die QApplication wird allerdings in der ersten Zeile in der main() Funktion erstellt...
Wäre wirklich nett, wenn mir hier jemand weiterhelfen könnte, da ich für ein Projekt für die Berufsschule dringend Qwt brauche.
Grüße
Robert
Zuletzt geändert von Blubb am 22. März 2010 02:23, insgesamt 1-mal geändert.
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Ich habe qwt schon sehr häufig kompiliert (static, shared), auch mit VS2008 und hatte nie Probleme. Die wichtigsten Einstellungen macht man in der qwtconfig.pri Datei. Dort stellt man auch ein, ob release/debug oder beides und shared oder static.
Dein Fehler in Deiner Applikation deutet darauf hin, das Du unterschiediche Versionen, debug/release, vermischst. Also Du Deine Applikation in Debug-Mode erstellst aber gegen die Release Version von qwt linkst!!! Dabei gibt es immer Probleme!!!
Michael
Dein Fehler in Deiner Applikation deutet darauf hin, das Du unterschiediche Versionen, debug/release, vermischst. Also Du Deine Applikation in Debug-Mode erstellst aber gegen die Release Version von qwt linkst!!! Dabei gibt es immer Probleme!!!
Michael
Re: Qwt Installation
Kein Wunder - diese Kombination bekommen ein paar ältere Compiler aus dem MS Stall nicht gebacken. Du benötigst eine aktuelle Version von Qwt aus dem 5.2 SVN Bugfix Branch. ( Du benötigst dafür einen Subversion Client - das zugehörige Kommando findest Du auf der Qwt Homepage ).sitze jetzt hier schon seit Tagen rum und versuche Qwt 5.2.0 mit Qt 4.6 zum laufen zu bringen, allerdings will mir das einfach nicht gelingen.
Alternativ kannst Du die beanstandeten Deklarationen in qwt_valuelist.h auch einfach ersatzlos löschen.
Das ist ein Symptom für eines dieser sinnlosen Build/Runtime Probleme die es unter vernünftigen Betriebssystemen gar nicht gibt. Irgendso ein Kram wie "Vergessen QWT_DLL zu definieren", Debug/Release Bibliotheken mischen oder irgendeine andere Inkompatibilität. Mit dem Code selber hat es in jedem Fall nichts zu tun.Wenn ich nun allerdings bspw. einen Qwt_Plot an irgendeiner Stelle im Programm erstelle, bekomme ich beim Starten der Applikation folgende Fehlermeldung:
"QWidget: Must construct a QApplication before a QPaintDevice"
Uwe
-
martin2_86
- Beiträge: 17
- Registriert: 20. März 2010 00:29
Hi,
ich habe das gleiche Problem. Ich benutze QT Version 4.6.2 und QWT 5.2. Der Befehl "nmake" in der VS2008 Eingabeaufforderung angewandt auf den Installationspfad von QWT liefer fatale Error (cl.exe und nmake.exe: Rückgabe-Code 0x2). Daher hab ich mir TortoiseSVN runtergeladen und will das mit dem neuesten Bugfix nun probieren. Kannst du bitte posten, wie man das anstellt in TortoiseSVN? Was ich bisher geschafft hab ist den Repo browser zu öffnen und dann auf die URL zu gelangen die auf der QWT seite angegeben ist (https://qwt.svn.sourceforge.net/svnroot ... es/qwt-5.2). Dann erscheinen im browser als unterordner von branches mehrere Ordner mit versch. Versionen (qwt-5.0, qwt-5.1, qwt-5.2, qwt-5.x). Doch an dieser Stelle weiss ich nicht weiter.
Gruß
Martin
ich habe das gleiche Problem. Ich benutze QT Version 4.6.2 und QWT 5.2. Der Befehl "nmake" in der VS2008 Eingabeaufforderung angewandt auf den Installationspfad von QWT liefer fatale Error (cl.exe und nmake.exe: Rückgabe-Code 0x2). Daher hab ich mir TortoiseSVN runtergeladen und will das mit dem neuesten Bugfix nun probieren. Kannst du bitte posten, wie man das anstellt in TortoiseSVN? Was ich bisher geschafft hab ist den Repo browser zu öffnen und dann auf die URL zu gelangen die auf der QWT seite angegeben ist (https://qwt.svn.sourceforge.net/svnroot ... es/qwt-5.2). Dann erscheinen im browser als unterordner von branches mehrere Ordner mit versch. Versionen (qwt-5.0, qwt-5.1, qwt-5.2, qwt-5.x). Doch an dieser Stelle weiss ich nicht weiter.
Gruß
Martin
Hi,
am besten du erstellst dir einfach einen neuen Ordner (bspw. C:\Qwt). Wenn du jetzt einen Rechtsklick darauf machst, gibt es im Explorer die Option "SVN Checkout". Dann brauchst du nur noch oben die URL eintragen und auf OK drücken und alles sollte automatisch in diesen Ordner geladen werden.
PS: Ich hatte auch mit der letzten Version von Qwt noch die fatal errors, diese habe ich allerdings durch 'nmake /I' umgangen, wodurch die Fehler von nmake ignoriert werden und einfach weiter kompiliert wird.
am besten du erstellst dir einfach einen neuen Ordner (bspw. C:\Qwt). Wenn du jetzt einen Rechtsklick darauf machst, gibt es im Explorer die Option "SVN Checkout". Dann brauchst du nur noch oben die URL eintragen und auf OK drücken und alles sollte automatisch in diesen Ordner geladen werden.
PS: Ich hatte auch mit der letzten Version von Qwt noch die fatal errors, diese habe ich allerdings durch 'nmake /I' umgangen, wodurch die Fehler von nmake ignoriert werden und einfach weiter kompiliert wird.
-
martin2_86
- Beiträge: 17
- Registriert: 20. März 2010 00:29
Hi Blubb,
vielen, vielen Dank. Dein "Post Scritum" Hinweis hat mich gerettet. Das mit 'nmake /I' wusst ich nicht, jetzt bin ich soweit dass ich die Qwt Widgets im Qt Designer einbauen kann.
Nun noch folgendes Problem: ich hab in VS als includeverzeichnis nur das ..Qt4\include Verzeichnis angegeben. Wenn ich in meinem code ne Qt H-File einbinden will muss ich immer das verzeichnis dazu angeben, in welchem unterordner von include das liegt (z.B. #include <QtGui/QAction>). In den erstellten ".ui" dateien wird das automatisch berücksichtigt, jedoch nicht in den erstellten dateien von Qwt, wenn ich z.B. nen Plot in meine GUI einfüge (z.B. bei #include <qframe.h> kommt ein Fehler, weil der Unterordner "Qt" nicht angegeben ist). In meinem VS 2008 Projekt hab ich unter C/C++ als Zusätzliche Includeverzeichnisse "$(QTDIR)/include" angegeben. Wie kann ich das einrichten, dass ich nur den Namen einer Datei angebe und die dann auch in allen Unterordnern von ..Qt4\include gesucht werden? Und woher kommt das, dass es beim Erzeugen der .ui dateien automatisch richtig gemacht wird?
Gruß Martin
vielen, vielen Dank. Dein "Post Scritum" Hinweis hat mich gerettet. Das mit 'nmake /I' wusst ich nicht, jetzt bin ich soweit dass ich die Qwt Widgets im Qt Designer einbauen kann.
Nun noch folgendes Problem: ich hab in VS als includeverzeichnis nur das ..Qt4\include Verzeichnis angegeben. Wenn ich in meinem code ne Qt H-File einbinden will muss ich immer das verzeichnis dazu angeben, in welchem unterordner von include das liegt (z.B. #include <QtGui/QAction>). In den erstellten ".ui" dateien wird das automatisch berücksichtigt, jedoch nicht in den erstellten dateien von Qwt, wenn ich z.B. nen Plot in meine GUI einfüge (z.B. bei #include <qframe.h> kommt ein Fehler, weil der Unterordner "Qt" nicht angegeben ist). In meinem VS 2008 Projekt hab ich unter C/C++ als Zusätzliche Includeverzeichnisse "$(QTDIR)/include" angegeben. Wie kann ich das einrichten, dass ich nur den Namen einer Datei angebe und die dann auch in allen Unterordnern von ..Qt4\include gesucht werden? Und woher kommt das, dass es beim Erzeugen der .ui dateien automatisch richtig gemacht wird?
Gruß Martin
-
martin2_86
- Beiträge: 17
- Registriert: 20. März 2010 00:29
Hi,
danke erstmal dass du dir Zeit genommen hast für mein Problem. Ich versteh noch nicht ganz was das genau bewirkt. Du hast einen Unterordern 'Qwt' in 'Qt4\include' angelegt und diesen als zusätzlichen Include path angegeben? Hast du dann die Header-files von Qwt in diesen Ordner kopiert oder ist der Ordner leer? Oder was genau bezweckt das?
Mein Problem ist erstmal (auch ohne Qwt) dass ich immer die Unterordner im Qt-Includeverzeichnis angeben muss (es geht nicht '#include <QWidget.h>, sondern ich muss '#include <Qt/QWidget.h>' angeben, also mit dem Ordner 'Qt'). Nun könnte ich alle Unterordner vom Qt-Includeverzeichnis als zusätzliche Includeverzeichnisse für C/C++ Projekte in Visual Studio angeben, aber das erscheint mir sehr umständlich. Da gibts doch sicher was eleganteres.
Gruß und danke im Voraus.
danke erstmal dass du dir Zeit genommen hast für mein Problem. Ich versteh noch nicht ganz was das genau bewirkt. Du hast einen Unterordern 'Qwt' in 'Qt4\include' angelegt und diesen als zusätzlichen Include path angegeben? Hast du dann die Header-files von Qwt in diesen Ordner kopiert oder ist der Ordner leer? Oder was genau bezweckt das?
Mein Problem ist erstmal (auch ohne Qwt) dass ich immer die Unterordner im Qt-Includeverzeichnis angeben muss (es geht nicht '#include <QWidget.h>, sondern ich muss '#include <Qt/QWidget.h>' angeben, also mit dem Ordner 'Qt'). Nun könnte ich alle Unterordner vom Qt-Includeverzeichnis als zusätzliche Includeverzeichnisse für C/C++ Projekte in Visual Studio angeben, aber das erscheint mir sehr umständlich. Da gibts doch sicher was eleganteres.
Gruß und danke im Voraus.
-
martin2_86
- Beiträge: 17
- Registriert: 20. März 2010 00:29
Ich generier mein Projekt bis jetzt immer direkt in VS2008. Ich hab da eben die ganzen Bibliotheken und Includeverzeichnisse angegeben sowie die moc-einstellungen bei den header-files angegeben und jeweils das Projekt immer im debug modus in VS angeschaut. Wo genau liegt der Unterschied zu deiner Methode (also qmake zu benutzen)? Benutzt VS auch qmake? Gruß