Seite 1 von 2
QT unter Visual Stduio .NET
Verfasst: 7. September 2004 11:05
von littlepeoplegirl79
Hallo,
habe ein Problem beim Linken.
Das Programm ist das Tutorial 1.
Code: Alles auswählen
#include <qapplication.h>
#include <qpushbutton.h>
int main( int argc, char **argv )
{
QApplication a( argc, argv );
QPushButton hello( "Hello world!", 0 );
hello.resize( 100, 30 );
a.setMainWidget( &hello );
hello.show();
return a.exec();
}
Er bringt eine Fehlermeldung:
Code: Alles auswählen
c:\Programme\Qt\include\qlist.h(105): error C2491: 'QList<type>::deleteItem' : Definition von Funktion für dllimport nicht zulässig
c:\Programme\Qt\include\qintdict.h(83): error C2491: 'QIntDict<type>::deleteItem' : Definition von Funktion für dllimport nicht zulässig
Was muss ich für Qt alles einstellen?
Benutzt die QT-Designer Non-Commercial Edition!
Gruß und dank!
Verfasst: 7. September 2004 12:31
von pm_Snake
Welche QT-Version hast du?
Ich glaub nur die neueren gehen unter VS . NET
Gibt da auch so ein Plugin....
Verfasst: 7. September 2004 14:45
von littlepeoplegirl79
Hi,
ich benutzt den Qt-Designer Version 1.1 und das Visual Studio 2002 .NET
Enterprise Architekt.
Hab folgende Lib gefunden:
qtmain.lib
qt-mt230nc.lib
qutil.lib
Hilft das?
Welche Version arbeitet denn mit MS VS .NET zusammen?
Gibt es da auch Non-Commercials?
Verfasst: 7. September 2004 15:11
von pm_Snake
Such mal bei dir lokal nach
QmsNetSetup.msi
Das ist das Plugin für die build 7 - Developer von M$ ( seit .NET )
Hoffentlich geht es damit. Sonst weiss ich leider auch nicht. Ein Arbeitskollege von mir meinte eben das auch Qt2 mit .NET laufen sollte...
Verfasst: 7. September 2004 15:19
von littlepeoplegirl79
nichts gefunden,
ich ziehe mir gerade mal die
qt-win-eval-msvc-3.3.3.exe
mal sehen ob die es macht.
Für was ist QT2?
Verfasst: 7. September 2004 15:26
von pm_Snake
Du hast die Version Qt 2.3, gehört also für mich zur 2, darum ging es
Mal ne andere Frage, hast du alle benötigten Sachen gelinkt?
Alle Env. Variablen gesetzt? QTDIR, etc ...
Oder hast du schonmal versucht mit qmake zu erstellen? ( sollte dabei sein )
Verfasst: 7. September 2004 15:32
von littlepeoplegirl79
meine batch-Datei sieht wiefolgt aus
Code: Alles auswählen
moc -o moc_ARBlueBox.cpp ARBlueBox.h
cl -c -nologo -I%QTDIR%/include -FoARBlueBox.obj ARBlueBox.cpp
cl -c -nologo -I%QTDIR%/include -Fomain.obj main.cpp
cl -c -nologo -I%QTDIR%/include -Fomoc_ARBlueBox.obj moc_ARBlueBox.cpp
link /NOLOGO /SUBSYSTEM:windows /OUT:ARBlueBox ARBlueBox.obj main.obj
\
moc_PizzaEntry.obj %QTDIR%/lib/qt.lib kernel32.lib user32.lib gdi32.lib
\
comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib
imm32.lib winmm.lib wsock32.lib
wie es im Manual steht!
Aber es kommen nur Linkerfehler!
Nicht aufgelöste externe Symbole etc.
Verfasst: 7. September 2004 15:35
von pm_Snake
gibt es bei dir überhaupt eine qt.lib?
wenn ich mich recht entsinne heisst die entweder qt-main.lib
oder qt-mt<versionsnummer>.lib
%QTDIR%/lib/qt.lib
versuch es damit mal, vieleicht hilft es
Verfasst: 7. September 2004 15:41
von littlepeoplegirl79
auch mit
Code: Alles auswählen
moc -o moc_ARBlueBox.cpp ARBlueBox.h
cl -c -nologo -I%QTDIR%/include -FoARBlueBox.obj ARBlueBox.cpp
cl -c -nologo -I%QTDIR%/include -Fomain.obj main.cpp
cl -c -nologo -I%QTDIR%/include -Fomoc_ARBlueBox.obj moc_ARBlueBox.cpp
link /NOLOGO /SUBSYSTEM:windows /OUT:ARBlueBox ARBlueBox.obj main.obj
\
moc_PizzaEntry.obj %QTDIR%/lib/qtmain.lib qt-mt230nc.lib qutil.lib kernel32.lib user32.lib gdi32.lib
\
comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib
imm32.lib winmm.lib wsock32.lib
kommen die Linker Fehler!
Verfasst: 7. September 2004 16:29
von pm_Snake
Das hier hab ich grad in er Mailingliste gefunden:
3.2 is the only version with .NET 2003 support.
Cheers,
Dave.
Es dürfte kein all zu grosser Unterschied zw. 2002 und 2003 liegen. Also gut möglich das es an deiner QT-version liegt.
Du sagtest vorhin du ziehst dir qt-win-eval-msvc-3.3.3.exe
hast du die andere qt-installation sauber entfernt und die neue installed?
Verfasst: 7. September 2004 17:02
von littlepeoplegirl79
soweit ja,
hat bei der generierung alles gut umgewandelt.
Aber wie funktioniert denn das nun mit der qmake?
Kann ich auch weiterhin mit batch-files arbeiten?
Wie sehen die jetzt aus?
Verfasst: 7. September 2004 17:06
von pm_Snake
Wie funktioniert was mit dem qmake? Was genau möchtest du in der Hinsicht wissen?
Mit batch-files kannst du theoretisch immer arbeiten, die Frage ist nur wo der nutzen liegt.
Kompilieren lass ich meistens den Developer, ausser ich mache offizielle Release-versionen. Dann läuft bei uns in der Firma ein Batch-script was halt alles hochoffiziell linkt.
Sonst hab ich Batchfiles nur um meine Evn. Variablen der Verschiedenen Versions- und Buildnummern zu setzen...
Verfasst: 8. September 2004 08:05
von littlepeoplegirl79
Ich finde das Erstellen mit Hilfe eines Batch-files einfacher.
Damit weiss man, was alles im Projekt benötigt wird und
man hat es nicht ganz so schwer, es so mit verschiedenen
Compilern laufen lassen.
Mein VS C-Compiler meldet aber noch immer unaufgelöste Symbole:
Code: Alles auswählen
ARBlueBox error LNK2001: Nichtaufgeloestes externes Symbol "public: virtual bool __thiscall ARBlueBox::qt_emit(int,struct QUObject *)" (?qt_emit@ARBlueBox@@UAE_NHPAUQUObject@@@Z)
verwende folgende Librarys
zusätzlich eingeschrieben:
Code: Alles auswählen
wsock32.lib
winmm.lib
imm32.lib
qtmain.lib
qui.lib
qt-mteval333.lib
Standard:
Code: Alles auswählen
kernel32.lib
user32.lib
gdi32.lib
winspool.lib
comdlg32.lib
advapi32.lib
shell32.lib
ole32.lib
oleaut32.lib
uuid.lib
odbc32.lib
odbccp32.lib
Was fehlt noch?
Habe jetzt QT 3.3.3?
Benötigt er noch irgendwelche Bibliotheken?
Verfasst: 8. September 2004 10:48
von pm_Snake
mocfile fehlt, glaub ich
projekteinstellungen, Custom Bild Step
$(QTDIR)\bin\moc.exe headerdatei.h -o moc\moc_headerdatei.cpp
dann bei Outputs noch <moc_namen der Headerdatei.cpp> angeben, einmal laufen lassen und dann die moc_Datei mit ins Projekt aufnehmen
Verfasst: 8. September 2004 11:15
von littlepeoplegirl79
Jepp, das war es!
Jetzt läuft es !
Jedoch bekomme ich die batch-Datei noch nicht zum laufen!
Code: Alles auswählen
moc -o moc_ARBlueBox.cpp ARBlueBox.h
cl -c -nologo -I%QTDIR%/include -FoARBlueBox.obj ARBlueBox.cpp
cl -c -nologo -I%QTDIR%/include -Fomain.obj main.cpp
cl -c -nologo -I%QTDIR%/include -Fomoc_ARBlueBox.obj moc_ARBlueBox.cpp
link /NOLOGO /SUBSYSTEM:windows /OUT:ARBlueBox ARBlueBox.obj main.obj moc_ARBlueBox.obj \
%QTDIR%/lib/qtmain.lib qui.lib qt-mt323.lib kernel32.lib user32.lib gdi32.lib \
comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib imm32.lib winmm.lib wsock32.lib
Wie bekomme ich da die zusätzlichen Parameter hin, hast du eine Idee?