QT unter Visual Stduio .NET

Verschiedenes zu Qt
littlepeoplegirl79
Beiträge: 30
Registriert: 6. September 2004 17:12

QT unter Visual Stduio .NET

Beitrag 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!
pm_Snake
Beiträge: 86
Registriert: 7. September 2004 11:33

Beitrag von pm_Snake »

Welche QT-Version hast du?
Ich glaub nur die neueren gehen unter VS . NET
Gibt da auch so ein Plugin....
littlepeoplegirl79
Beiträge: 30
Registriert: 6. September 2004 17:12

Beitrag 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?
pm_Snake
Beiträge: 86
Registriert: 7. September 2004 11:33

Beitrag 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...
littlepeoplegirl79
Beiträge: 30
Registriert: 6. September 2004 17:12

Beitrag 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?
pm_Snake
Beiträge: 86
Registriert: 7. September 2004 11:33

Beitrag 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 )
littlepeoplegirl79
Beiträge: 30
Registriert: 6. September 2004 17:12

Beitrag 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.
pm_Snake
Beiträge: 86
Registriert: 7. September 2004 11:33

Beitrag 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
littlepeoplegirl79
Beiträge: 30
Registriert: 6. September 2004 17:12

Beitrag 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!
pm_Snake
Beiträge: 86
Registriert: 7. September 2004 11:33

Beitrag 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?
littlepeoplegirl79
Beiträge: 30
Registriert: 6. September 2004 17:12

Beitrag 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?
pm_Snake
Beiträge: 86
Registriert: 7. September 2004 11:33

Beitrag 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...
littlepeoplegirl79
Beiträge: 30
Registriert: 6. September 2004 17:12

Beitrag 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?
pm_Snake
Beiträge: 86
Registriert: 7. September 2004 11:33

Beitrag 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
littlepeoplegirl79
Beiträge: 30
Registriert: 6. September 2004 17:12

Beitrag 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?
Antworten