Seite 1 von 1

Visual Studio 6 und QT

Verfasst: 25. März 2005 14:36
von KarlBlau
Hi,

ich verwende Visual Studio 6 (SP6) und wollte nun in die QT Programmierung einsteigen. Beim ausführen des ersten Testprogrammes scheitere ich bereits:

Ich habe folgende Datei von QT heruntergeladen und installiert: setup-qt-win-msvc-3.1.0-b1.exe
Ich habe die Links in den Visual Studio Settings vorgenommen (hoffentlich alle und richtig)

Der Linker spuckt folgenden Fehler aus:

--------------------Konfiguration: hello - Win32 Debug--------------------
Linker-Vorgang läuft...
hello.obj : error LNK2001: Nichtaufgeloestes externes Symbol "public: virtual __thiscall QApplication::~QApplication(void)" (??1QApplication@@UAE@XZ)
hello.obj : error LNK2001: Nichtaufgeloestes externes Symbol "public: int __thiscall QApplication::exec(void)" (?exec@QApplication@@QAEHXZ)
hello.obj : error LNK2001: Nichtaufgeloestes externes Symbol "public: virtual void __thiscall QApplication::setMainWidget(class QWidget *)" (?setMainWidget@QApplication@@UAEXPAVQWidget@@@Z)
hello.obj : error LNK2001: Nichtaufgeloestes externes Symbol "public: __thiscall QLabel::QLabel(class QString const &,class QWidget *,char const *,unsigned int)" (??0QLabel@@QAE@ABVQString@@PAVQWidget@@PBDI@Z)
hello.obj : error LNK2001: Nichtaufgeloestes externes Symbol "public: __thiscall QString::QString(char const *)" (??0QString@@QAE@PBD@Z)
hello.obj : error LNK2001: Nichtaufgeloestes externes Symbol "public: __thiscall QApplication::QApplication(int &,char * *)" (??0QApplication@@QAE@AAHPAPAD@Z)
hello.obj : error LNK2001: Nichtaufgeloestes externes Symbol "public: void __thiscall QStringData::deleteSelf(void)" (?deleteSelf@QStringData@@QAEXXZ)
hello.obj : error LNK2001: Nichtaufgeloestes externes Symbol "private: static struct QStringData * QString::shared_null" (?shared_null@QString@@0PAUQStringData@@A)
Debug/hello.exe : fatal error LNK1120: 8 unaufgeloeste externe Verweise
Fehler beim Ausführen von link.exe.

hello.exe - 9 Fehler, 0 Warnung(en)


Was habe ich falsch (bzw. noch nicht) gemacht?

Gruss,

Karl

Verfasst: 25. März 2005 22:06
von ArneStocker
Hi Karl

hast Du die Bibliotheken (z.B. qtnc321.lib oder so ähnlich) zu Deinem Projekt gelinkt ??

Gruss Arne

andere Version

Verfasst: 26. März 2005 00:05
von KarlBlau
Servus,
ich habe eine andere Version der QT-Lib installiert. Jetzt geht es. Keine Ahnung woran es gelegen hat.
Naja...vielen Dank für die Hilfe.
Karl

Installation VS6 und QT

Verfasst: 31. März 2005 23:07
von KarlBlau
Hallo,

ich werd noch verrückt...
Egal was ich mache, immer tausend Fehlermeldungen und Warnungen. Ich hab den Verdacht, dass da irgendwas nicht richtig eingerichtet ist. Ich werd nun alles nochmal runterwerfen und nochmal neu installieren.

Könnt Ihr mir bitte helfen das Visual Studio mit einer QT-Version zum Laufen zu bringen? Ich verwende WindowsXP, Visual Studio 6 (mit aktuellem SP).

Welche Version des QT ist am besten geeignet? (Bitte einen Link angeben; ich habe schon zig Versionen gefunden)
Und was genau muss ich danach noch machen, dass sich die beiden vertragen?

Vielen Dank,
Karl

Verfasst: 1. April 2005 09:01
von dilorenzo
Hallo,

findest Du denn die VC Oberfläche so toll?

Ich finde es angenehmer meine CPP-Dateien mit einem richtigen Editor zu schreiben und dann in dem Verzeichnis diese Befehle im cmd.exe auszuführen:

qmake -project
qmake test1.pro
nmake

Gruß,
Dominik

Re: Installation VS6 und QT

Verfasst: 1. April 2005 10:20
von Goos
KarlBlau hat geschrieben:Welche Version des QT ist am besten geeignet? (Bitte einen Link angeben; ich habe schon zig Versionen gefunden)
Und was genau muss ich danach noch machen, dass sich die beiden vertragen?

Vielen Dank,
Karl
Hoi Karl,

es ist ansich absolut egal, welche QT Version du mit deinem VC benutzt.
Es kommt einzig und allein darauf an, welche Einstellungen du sonst noch so machst.
Also zaehl doch bitte mal auf, was du gegenueber der Einstellungen eines Standardprojekts geaendert hast.

Goos

Verfasst: 1. April 2005 17:10
von Notwist
Die Pfade müssen natürlich in XP auch alle stimmen und die Bibliotheken musst Du LINKEN. VS hat für die Pfade ne BAT-Datei, die das in XP einrichtet oder Du sagst ihm das bei der Installation.

Die LINKER-Zeile sieht bei mir zB so aus (Qt-Pfad abändern):

kernel32.lib user32.lib gdi32.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib imm32.lib wsock32.lib winspool.lib winmm.lib F:\Qt\3.3.3\lib\qt-mt333.lib F:\Qt\3.3.3\lib\qtmain.lib

Dann hatte ich am Anfang das Problem, dass unter Projekt-Settings unter dem Reiter C/C++, Category: Code Generation - Use Run Time Library auf: Debug MultiThreaded DLL stellen.

Versuchs mal.

P.S.: VS hat nach der QT-Installation ne nette Zusatzleiste, in der man eine QT-Projekt für Designer einrichten kann und der Dir dann die entsprechenden Klassen bereits ableitet und die MOC-Dateien kreiert.

Verfasst: 1. April 2005 17:31
von ChMaster
Notwist hat geschrieben: P.S.: VS hat nach der QT-Installation ne nette Zusatzleiste, in der man eine QT-Projekt für Designer einrichten kann und der Dir dann die entsprechenden Klassen bereits ableitet und die MOC-Dateien kreiert.
jab aber nur in der comercial/non comercial version, in der freeediton ist dies
nicht dabei, ist nur ein hinweis ;)

(wenn ich mich täusch sag bescheid)

Verfasst: 5. April 2005 01:29
von KarlBlau
Hallo,

vielen Dank für Eure Antworten. Ich konnte leider erst jetzt wieder ins Forum. Ich habe verschiedene Sachen zum Thema versucht und hätte auch noch zwei Fragen:

@Notwist:
>Die Pfade müssen natürlich in XP auch alle stimmen
Welche Pfade? Die Pfade von QT? Wenn ich unter der Eingabeaufforderung 'path' eingebe, sehe ich unter anderem das bin-Verzeichnis von QT. Genügt das? Was muss da noch aufgezählt sein?

meine Linker-Zeile sieht so aus:
kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib
Diese erweitere ich händisch um die beiden Einträge qtmain.lib und qt-mtnc321.lib
Was muss ich einstellen, damit das VS diese beiden Einträge automatisch bei neuen Projekten hinzufügt?

Gruss,
Karl

Verfasst: 5. April 2005 17:37
von Notwist
Im Pfad hab ich auch nur das BIN drin. Habe noch eine Umgebungsvariable QTDIR, in der der QT-Pfad steht.

Ja, kannst Du per Hand machen mit der LIB. Ich muss das auch nur abändern, wenn ich ein Projekt nicht mit dieser Zusatzleiste erstellt habe und dann geht das. Eventuell war halt noch dieser andere Eintrag, von dem ich gesprochen habe, falsch eingestellt, was das Kompilieren verhinderte.