Visual C++ und QT
-
hi,
ich habe die VC6 - Autorenversion und möchte jetzt Programme, die die Bibliothek Qt nutzen
kompilieren. Ich habe das Projekt ganz normal über "Neues Qt-Projekt" erstellt, aber erhalte beim
Linken folgende Fehler:--------------------Konfiguration: Dienstplaner - Win32 Debug-------------------- Linker-Vorgang läuft... arbeitsfenster.obj : error LNK2001: Nichtaufgeloestes externes Symbol __chkesp dienst.obj : error LNK2001: Nichtaufgeloestes externes Symbol __chkesp hauptfenster.obj : error LNK2001: Nichtaufgeloestes externes Symbol __chkesp main.obj : error LNK2001: Nichtaufgeloestes externes Symbol __chkesp ... hauptfenster.obj : error LNK2001: Nichtaufgeloestes externes Symbol "public: static class QString QString::null" (?null@QString@@2V1@A) main.obj : error LNK2001: Nichtaufgeloestes externes Symbol "public: static class QString QString::null" (?null@QString@@2V1@A) dienst.obj : error LNK2001: Nichtaufgeloestes externes Symbol __fltused hauptfenster.obj : error LNK2001: Nichtaufgeloestes externes Symbol "public: static class QString __cdecl Hauptfenster::tr(char const *,char const *)" (?tr@Hauptfenster@@SA?AVQString@@PBD0@Z) hauptfenster.obj : error LNK2001: Nichtaufgeloestes externes Symbol __purecall LINK : error LNK2001: Nichtaufgeloestes externes Symbol _WinMainCRTStartup Debug/Dienstplaner.exe : fatal error LNK1120: 14 unaufgeloeste externe Verweise Fehler beim Ausführen von link.exe. Dienstplaner.exe - 32 Fehler, 0 Warnung(en)Was mach ich falsch?
Tschau Gartenzwerg
-
hi,
hab ich im falschem Forum gepostet oder kann mir keiner helfen?
Tschau Gartenzwerg
-
hi,
vielleicht sollte ich noch ein paar Information herausrücken.Ich nutze Qt 2.3 non-commercial-Edition und wollte nun versuchen mein Projekt
mit QTranslator zu internationalisieren.
Vielleicht liegt es daran, muss ich beim Präprozessor noch etwas hinzufügen o.ä.?Tschau Gartenzwerg
-
hi
wie hast du qt installiert? bei mir hat es sich automatisch in das studio "hineingefressen", also die richtigen pfade gelegt...
leider hab ich heute morgen keine zeit, die fehler konkret zu recherchieren, aber linkst du richtig?
zum testen: voraussichtlich hat sich bei der installation ein ordner angelegt, in dem auch lauffähige beispiele sind, die man über dsp öffnen kann und die sich problemlos linken lassen.
mach dir (im selben ordner) mal eine kopie und füge deinen code ein, dann zeigt sich, ob es nur ein linker/pfad problem ist...
bis später
-
hi,
ich habe Qt ganz einfach mit dem mitgelieferten Setup-Programm installiert.
Bei mir hat es sich auch ins VC eingeschlichen.
Ich habe schon einige Programme mit der selben Linkereinstellung mit Qt geschrieben und
die funktionieren einwandfrei. Nur das aktuelle nicht. Ich habe nie zuvor QTranslator
benutzt und vermute, dass ich in dessen Benutzung irgendetwas falsch mache, oder irgendetwas
beim Linker verändert werden muss.Tschau Gartenzwerg
-
http://www.opencascade.com/community/forum/thread_2727/
hier ist ein qt translator, der funzen soll.. versuch den mal mit den beschriebenen einstellungen
ich versuchs ev. nachher auch mal.
-
schau mal hier rein www.c-plusplus.net/forum/viewtopic?t=49183
-
sorry...
-
hi,
@smo: beide Links bringen mich auf eine 404 Fehler-Seite
@elise: für den gezeigten Quellcode fehlen mir noch einige Dateien zum kompilieren.
Die Projekteinstellungen habe ich übernommen und trotz der dort gezeigten
gezeigten Ergänzungen läuft der Linker nicht durch (ohne auch nicht). Aber aufgrund
der Änderung der Projekteinstellung sind es nur noch 13 Fehler:--------------------Konfiguration: Dienstplaner - Win32 Release-------------------- Kompilierung läuft... arbeitsfenster.cpp hauptfenster.cpp main.cpp moc_arbeitsfenster.cpp moc_hauptfenster.cpp Generieren von Code... Linker-Vorgang läuft... moc_arbeitsfenster.obj : error LNK2005: "public: virtual char const * __thiscall Arbeitsfenster::className(void)const " (?className@Arbeitsfenster@@UBEPBDXZ) bereits in arbeitsfenster.obj definiert moc_arbeitsfenster.obj : error LNK2005: "protected: virtual void __thiscall Arbeitsfenster::initMetaObject(void)" (?initMetaObject@Arbeitsfenster@@MAEXXZ) bereits in arbeitsfenster.obj definiert moc_arbeitsfenster.obj : error LNK2005: "public: static class QString __cdecl Arbeitsfenster::tr(char const *)" (?tr@Arbeitsfenster@@SA?AVQString@@PBD@Z) bereits in arbeitsfenster.obj definiert moc_arbeitsfenster.obj : error LNK2005: "public: static class QMetaObject * __cdecl Arbeitsfenster::staticMetaObject(void)" (?staticMetaObject@Arbeitsfenster@@SAPAVQMetaObject@@XZ) bereits in arbeitsfenster.obj definiert moc_arbeitsfenster.obj : error LNK2005: "private: static class QMetaObject * Arbeitsfenster::metaObj" (?metaObj@Arbeitsfenster@@0PAVQMetaObject@@A) bereits in arbeitsfenster.obj definiert moc_hauptfenster.obj : error LNK2005: "public: virtual char const * __thiscall Hauptfenster::className(void)const " (?className@Hauptfenster@@UBEPBDXZ) bereits in hauptfenster.obj definiert moc_hauptfenster.obj : error LNK2005: "protected: virtual void __thiscall Hauptfenster::initMetaObject(void)" (?initMetaObject@Hauptfenster@@MAEXXZ) bereits in hauptfenster.obj definiert moc_hauptfenster.obj : error LNK2005: "public: static class QString __cdecl Hauptfenster::tr(char const *)" (?tr@Hauptfenster@@SA?AVQString@@PBD@Z) bereits in hauptfenster.obj definiert moc_hauptfenster.obj : error LNK2005: "public: static class QMetaObject * __cdecl Hauptfenster::staticMetaObject(void)" (?staticMetaObject@Hauptfenster@@SAPAVQMetaObject@@XZ) bereits in hauptfenster.obj definiert moc_hauptfenster.obj : error LNK2005: "private: static class QMetaObject * Hauptfenster::metaObj" (?metaObj@Hauptfenster@@0PAVQMetaObject@@A) bereits in hauptfenster.obj definiert arbeitsfenster.obj : error LNK2001: Nichtaufgeloestes externes Symbol "public: static class QString __cdecl Arbeitsfenster::tr(char const *,char const *)" (?tr@Arbeitsfenster@@SA?AVQString@@PBD0@Z) hauptfenster.obj : error LNK2001: Nichtaufgeloestes externes Symbol "public: static class QString __cdecl Hauptfenster::tr(char const *,char const *)" (?tr@Hauptfenster@@SA?AVQString@@PBD0@Z) Release/Dienstplaner.exe : fatal error LNK1120: 2 unaufgeloeste externe Verweise Fehler beim Ausführen von link.exe. Dienstplaner.exe - 13 Fehler, 0 Warnung(en)Hoffe du kannst mir helfen!
Tschau Gartenzwerg
-
Habe vergessen noch http:// hinzuschreiben.
-
Schau mal im Linux/Unix Forum unter Qt Linux-Windows nach...
-
hi,
auch damit komm ich nicht weiter.
Ich erhalte immer den Fehler, dass er die Headerdatei "string.h" nicht findet.E:\Eigene Dateien\Dienstplaner>nmake Microsoft (R) Program Maintenance-Dienstprogramm: Version 6.00.8168.0 Copyright (C) Microsoft Corp 1988-1998. Alle Rechte vorbehalten. cl -c -nologo -W3 -O1 -DNO_DEBUG -I"D:\qt\include" -Foarbeitsfenster.obj arbeitsfenster.cpp arbeitsfenster.cpp D:\qt\include\qcstring.h(50) : fatal error C1083: Include-Datei kann nicht geoef fnet werden: 'string.h': No such file or directory NMAKE : fatal error U1077: 'D:\PROGRA~1\MICROS~1\VC98\BIN\cl.exe' : Rueckgabe-Co de '0x2' Stop.Was mach ich falsch, wieso findet er die "string.h" nicht?
Tschau Gartenzwerg
PS: auch wenn ich string.h durch den kompletten Pfad bzw. durch string ersetze, kommt der selbe Fehler.
-
In QT nennt sich die Stringklasse qstring und der header qstring.h
-
hi,
@unix-tom: das weiß ich ich habe eigentlich auch diese Klasse und diese Header genutzt.
Tschau Gartenzwerg
-
Du gibst nur nmake an und der Compiler gibt Dir die Fehlermeldung raus, habe ich Dich so richtig verstanden.
-
include\qcstring.h
das hast du aber was anderes includet
-
hi,
@ smo: richtig
@ Unix-Tom: vielleicht reden wir aneinander vorbei. Ich habe in meinem Quelltext "#include <qstring.h>" zu stehen selbst wenn ich es durch "#include <qcstring.h>" ersetze, erscheint exakt der selbe Fehler.Tschau Gartenzwerg
-
Wenn es mit dem Makefile nicht klappt, gibt es noch eine Möglichkeit über die Konsole.
Wenn Du qt in C:\qt installiert hast, probier mal das hier:
cl -c -nologo -W3 -O1 -DNO_DEBUG -I"C:\qt\include" -Fo prog.obj prog.cpp link /NOLOGO /SUBSYSTEM:windows /OUT:myprog.exe myprog.obj C:\qt.lib user32.lib gdi32.lib comdlg32.lib imm32.lib ole32.lib uuid.lib wsocks32.libZurück zu den Makefiles:
Anscheinend hast Du es ja hinbekommen mit tmake einen Makefile zu generieren. Wie sieht denn Deine .pro-Datei aus? Kannst Du mal rein posten ?
-
sorry...
Die Zeile mit dem Link muss so lauten:
link /NOLOGO /SUBSYSTEM:windows /OUT:myprog.exe myprog.obj C:\qt*lib*\qt.lib user32.lib gdi32.lib comdlg32.lib imm32.lib ole32.lib uuid.lib wsock32.lib
-
könnte es sein, daß dein beispiel von der commandozeile gestartet
dann müssen die umgebungsvariablen vcvars32.bat noch dazu...
siehe mal hier..http://lists.trolltech.com/qt-interest/2002-01/thread00859-0.html
nur weil die fehlermeldung die gleiche ist.. und sie nicht nach einem linkerfehler aussieht, sondern eher nach einem include pfad problem..
ps: könnte man ja mal checken, die vcvars32.bat mit in die autoexec.bat aufzunehmen, rechner starten und dann schaun wa mal..