[gelöst] QT4 und MSVC2005 - Projekteigenschaften
[gelöst] QT4 und MSVC2005 - Projekteigenschaften
Hallo zusammen!
Ich habe eine Frage bzgl. der Einstellungen der Projekteingenschaften unter MSVC2005.
Ich habe bisher über die VS-Kommandozeile mit nmake gearbeitet und das funktionierte natürlich einwandfrei.
Jetzt muss meine GUI jedoch in ein bestehendes C++-Projekt eingebunden werden und dafür brauche ich die Projekt-Einstellungen...
Ich habe mich dabei exakt an die Anweisungen dieses .pdf-Files gehalten und alle Umgebungsvariablen und Linkereinstellungen gesetzt.
Dennoch bekomme ich beim Build einen Fehler, dass er die inkludierte Datei 'QtGui' nicht finden kann.
Habe ich etwas übersehen?
Danke für jegliche Hilfe.
Gruss
YP
Ich habe eine Frage bzgl. der Einstellungen der Projekteingenschaften unter MSVC2005.
Ich habe bisher über die VS-Kommandozeile mit nmake gearbeitet und das funktionierte natürlich einwandfrei.
Jetzt muss meine GUI jedoch in ein bestehendes C++-Projekt eingebunden werden und dafür brauche ich die Projekt-Einstellungen...
Ich habe mich dabei exakt an die Anweisungen dieses .pdf-Files gehalten und alle Umgebungsvariablen und Linkereinstellungen gesetzt.
Dennoch bekomme ich beim Build einen Fehler, dass er die inkludierte Datei 'QtGui' nicht finden kann.
Habe ich etwas übersehen?
Danke für jegliche Hilfe.
Gruss
YP
Zuletzt geändert von YP am 14. August 2006 22:54, insgesamt 1-mal geändert.
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
QtGui liegt bei mir unter C.\Qt\include\QtGui.
Inkludiert habe ich das in den Projekteigenschaften über C\C++ -> General -> Additional Include Directories -> "$(QTDIR)\include";
QTDIR habe ich als Umgebungsvariable auf C:\Qt gesetzt.
Von daher müsste also der Pfad stimmen...aber scheinbar doch nicht...
QT += gui habe ich jetzt in der .pro hinzugefügt, jedoch kommt immernoch der Fehler:
bzw.
Inkludiert habe ich das in den Projekteigenschaften über C\C++ -> General -> Additional Include Directories -> "$(QTDIR)\include";
QTDIR habe ich als Umgebungsvariable auf C:\Qt gesetzt.
Von daher müsste also der Pfad stimmen...aber scheinbar doch nicht...
QT += gui habe ich jetzt in der .pro hinzugefügt, jedoch kommt immernoch der Fehler:
Code: Alles auswählen
fatal error C1083: Cannot open include file: 'QtGui': No such file or directoryCode: Alles auswählen
fatal error C1083: Cannot open include file: 'QApplication': No such file or directoryWer nicht fragt bleibt dumm...
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Und was soll das? Wenn QtGui in C:\Qt\include\QtGui\ liegt, warum fügst Du dann nicht C:\Qt\include\QtGui\ hinzu?YP hat geschrieben:QtGui liegt bei mir unter C.\Qt\include\QtGui.
Inkludiert habe ich das in den Projekteigenschaften über C\C++ -> General -> Additional Include Directories -> "$(QTDIR)\include";
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
Vielleicht, weil ich neben QtGui auch noch QtXML und QtOpenGL nutzen möchte und nicht alles einzeln einbinden will? Oder geht es einfach nciht anders?
Nebenbei bemerkt habe ich das jetzt grade mal getan und
eingefügt.
Jetzt findet er zwar alles dafür bekomme ich 116 neue hübsche Fehler der Art
Nebenbei bemerkt habe ich das jetzt grade mal getan und
Code: Alles auswählen
C:\Qt\include;C:\Qt\include\QtGui;C:\Qt\include\QtOpenGL;C:\Qt\include\QtXML;C:\Qt\include\QtCore;Jetzt findet er zwar alles dafür bekomme ich 116 neue hübsche Fehler der Art
Code: Alles auswählen
error LNK2019: unresolved external symbol __imp__glEnable@4 referenced in function "protected: virtual void __thiscall CameraWidget::initializeGL(void)"Wer nicht fragt bleibt dumm...
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Ja, man muss schon alle verzeichnisse angeben. Oder eben #include <QtGui/QtGui> benutzen - finde ich aber unschön.YP hat geschrieben:Vielleicht, weil ich neben QtGui auch noch QtXML und QtOpenGL nutzen möchte und nicht alles einzeln einbinden will? Oder geht es einfach nciht anders?
Jetzt fehlen ein paar libs -> sieht wie opengl aus, alsoJetzt findet er zwar alles dafür bekomme ich 116 neue hübsche Fehler der ArtCode: Alles auswählen
error LNK2019: unresolved external symbol __imp__glEnable@4 referenced in function "protected: virtual void __thiscall CameraWidget::initializeGL(void)"
QT += opengl bzw. opengl32.lib zu den libs hinzufügen.
Wenn Du es mit Qt += opengl machst, sollten auch die Include-Pfade automatisch mit eingebunden werden. Man muss das vcproj danach natürlich neu mit qmake erstellen.
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
Ja, fiel mir dann auch ein. Zu schnell gepostet...Jetzt fehlen ein paar libs
Aber irgendwas fehlt immernoch.
Code: Alles auswählen
QtGuid4.lib QtCored4.lib QtOpenGLd4.lib QtXmld4.lib openGL32.lib Code: Alles auswählen
error LNK2001: unresolved external symbol "public: virtual struct QMetaObject const * __thiscall CameraWidget::metaObject(void)const
error LNK2019: unresolved external symbol "public: static struct QMetaObject const LoginDialog::staticMetaObject"In der .pro habe ich schon die ganze Zeit über
Code: Alles auswählen
QT += xml \
opengl \
gui Danke auf jeden Fall schon mal bisher für die hilfreichen Tips!
Wer nicht fragt bleibt dumm...
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Hast Du auch wirklich das .vcproj neu erstellt nachdem Du das pro-File modifiziert hast? Es sieht irgendwie so aus als würdest Du es nicht machen - die jetzt fehlenden Funktionen werden von moc erzeugt und normalerweise von qmake korrekt eingebunden (moc_filename.cpp) ...
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
*grml* Doch zu früh gefreut.
Jedes mal, wenn ich jetzt im Code was ändere und dann wieder Build ausführe, kommen die 40 Fehler zurück.
Ein einfaches qmake reicht da aber nicht. Erst wenn ich auch nmake ausführe, lässt sich im MSVC2005 ein Build ohne Fehler durchführen.
Aber das ist ja nicht der Sinn der Sache.
Kann es sein, dass das MSVC2005 die .moc falsch ausgibt?
Wenn ich es wie in dem .pdf-File aus meinem ersten Posting mache, also mit
in den Eigenschaften der .h-Files mit einem Q_OBJECT, komme ich auch nicht zu einem fehlerlosen Ergebnis.
Ersetze ich jedoch die von MSVC2005 erzeugten .moc-Files durch die durch qmake generierten Files, kompiliert er wieder fehlerlos.
Jedes mal, wenn ich jetzt im Code was ändere und dann wieder Build ausführe, kommen die 40 Fehler zurück.
Ein einfaches qmake reicht da aber nicht. Erst wenn ich auch nmake ausführe, lässt sich im MSVC2005 ein Build ohne Fehler durchführen.
Aber das ist ja nicht der Sinn der Sache.
Kann es sein, dass das MSVC2005 die .moc falsch ausgibt?
Wenn ich es wie in dem .pdf-File aus meinem ersten Posting mache, also mit
Code: Alles auswählen
• Command Line:
$(QTDIR)\bin\moc.exe "$(InputPath)" -o "$(InputDir)moc_$(InputName).cpp"
• Description:
Performing moc on $(InputName).h
• Outputs:
$(InputDir)moc_$(InputName).cppErsetze ich jedoch die von MSVC2005 erzeugten .moc-Files durch die durch qmake generierten Files, kompiliert er wieder fehlerlos.
Wer nicht fragt bleibt dumm...
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Die aus meinem vorangegangen Posting:Christian81 hat geschrieben:welche Fehler?
Code: Alles auswählen
error LNK2001: unresolved external symbol "public: virtual struct QMetaObject const * __thiscall CameraWidget::metaObject(void)const
error LNK2019: unresolved external symbol "public: static struct QMetaObject const LoginDialog::staticMetaObject"Tut mir leid, wenn das ne wirklich dumme Frage ist, aber ich habe bisher noch nie damit gearbeitet...
Wer nicht fragt bleibt dumm...
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Nope...passiert nichts.
Immernoch die gleichen Fehler.
Mir ist aber aufgefallen, dass MSVC2005 die .moc-Files nicht wie nmake mit in den Debug-Ordner schreibt.
Dementsprechend unterscheidet (siehe Klammer im Code) sich da MSVC2005 .moc-File auch von dem nmake .moc-File in folgender Zeile:
Alles andere ist identisch.
Immernoch die gleichen Fehler.
Mir ist aber aufgefallen, dass MSVC2005 die .moc-Files nicht wie nmake mit in den Debug-Ordner schreibt.
Dementsprechend unterscheidet (siehe Klammer im Code) sich da MSVC2005 .moc-File auch von dem nmake .moc-File in folgender Zeile:
Code: Alles auswählen
#include "(../)QLoginDialog.h"Wer nicht fragt bleibt dumm...
Moc Dateien
Mal ne Frage, hast du die moc Dateien deinem Visual Studio Projekt hinzugefügt?
Bitte seid so nett und ändert den Titel von Beiträgen die gelöst wurden, auf [gelöst] Beitragstitel