Seite 1 von 1

QWT und QT

Verfasst: 13. Dezember 2007 09:36
von nazih
Ich soll ein Programm erweitern, dass sowhl QT als auch QWT benutzt.
Ich habe QT (3.3.5) installiert, dann habe ich QWT herunter geladen. Nach der Kompilierung von QWT sollte zwei LIB Dateien erzeugt werden, nähmlich qt-mt335d.lib und qwtd.lib. Ich habe QWT mittels fogende Befehle kompiliert:
--------------------------
qmake qwt.pro
nmake
--------------------------
nmake, weil ich Visual Studio 2003 benutze
Folgende Fehler wurden ausgegeben:
-----------------------------------------------------------

C:\qwt-5.0.2>qmake qwt.pro

C:\qwt-5.0.2>nmake

Microsoft (R) Program Maintenance Utility, Version 7.10.3077
Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.

cd src
nmake -f Makefile

Microsoft (R) Program Maintenance Utility, Version 7.10.3077
Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.

cl -c -nologo -Zm200 -W3 -w34100 -w34189 -MD -O1 -DUNICODE -DWIN32 -DQT
_DLL -DQWT_DLL -DQWT_MAKEDLL -DQT_DLL -DQT_THREAD_SUPPORT -DQT_NO_DEBUG -I"C:\Qt
\3.3.5\include" -I"." -I"moc" -I"C:\Qt\3.3.5\mkspecs\win32-msvc.net" -Foobj\ @C:
\DOKUME~1\Nazih\LOKALE~1\Temp\nm28.tmp
qwt_panner.cpp
qwt_panner.cpp(53) : error C2666: 'QMemArray<type>::operator`[]'': 2 Überladunge
n haben ähnliche Konvertierungen
with
[
type=QwtPicker *
]
C:\Qt\3.3.5\include\qmemarray.h(99): kann 'QwtPicker &QMemArray<type>::o
perator [](int) const ' sein
with
[
type=QwtPicker *
]
oder 'eingebauter C++ Operator[(QwtPicker *const * , uint)'
bei Anpassung der Argumentliste '(QMemArray<type>, uint)'
with
[
type=QwtPicker *
]
NMAKE : fatal error U1077: 'cl': R³ckgabe-Code '0x2'
Stop.
NMAKE : fatal error U1077: '"C:\Programme\Microsoft Visual Studio .NET 2003\SDK\
v1.1\Bin\nmake.exe"': R³ckgabe-Code '0x2'
Stop.

C:\qwt-5.0.2>
-----------------------------------------------------------

Könnte jemand mir bei der Fehlerbehebung helfen?
Ich danke Ihnen im Voraus.

Verfasst: 13. Dezember 2007 09:59
von DeepDiver
Diese Problem wurde hier schon mal diskutiert:
http://www.qtcentre.org/forum/f-qwt-23/ ... 10679.html

Verfasst: 13. Dezember 2007 13:26
von nazih
Vielen Dank. Dieser Link hat mir sehr geholfen. Ich habe einfach diese Änderung:
=================================
#else
QObjectList *children = (QObjectList *)w->children();
if ( children )
{
for ( QObjectListIterator it(*children); it.current(); ++it )
{
QObject *obj = (QObject *)it.current();
if ( obj->inherits("QwtPicker") )
{
QwtPicker *picker = (QwtPicker *)obj;
if ( picker->isEnabled() )
{
pickers.resize(pickers.size() + 1);
pickers[(int)pickers.size() - 1] = picker; //!!!!! HERE
// pickers[pickers.size() - 1] = picker;
}
}
}
}
#endif
===============================
in der Datei qwt_panner.cpp vorgenommen. Obwohl die Kompilierung ist nicht erfolgreich beendet, habe ich das wichtige generiert bekommen, nämlich qwt502.lib. Ich habe danach diese in qwtd.lib umbenannt. Es scheint, mit dem Programm, das ich erweitern will, zu funktionieren.