Qt-Programme per Kommandozeile bauen
-
Hallo,
ich habe versucht ein simples Qt-Programm per Kommandozeile zu bauen, jedoch klappt dies nicht.
Ich habe meine Qt-Bibliothek selber vom Source kompiliert (v. 5.7.0)
Source Code des Test Programms
#include <QApplication> int main(int argc, char *argv[]) { QApplication app(argc, argv); return app.exec(); }
Dann habe ich die msvc2015 Kommandozeile geöffnet und eingegeben:
1. qmake -project
2. qmake
3. nmakeBei nmake gibt es diese Ausgabe:
Microsoft (R) Program Maintenance Utility, Version 14.00.24210.0 Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten. "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\nmake.exe" -f Makefile.Debug Microsoft (R) Program Maintenance Utility, Version 14.00.24210.0 Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten. cl -c -nologo -Zc:wchar_t -FS -Zc:strictStrings -Zc:throwingNew -Zi -MDd -GR -W3 -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 -wd4577 -EHsc /Fddebug\Desktop.pdb -DUNICODE -DWIN32 -DQT_GUI_LIB -DQT_CORE_LIB -DQT_OPENGL_ES_2 -DQT_OPENGL_ES_2_ANGLE -I. -I. -I..\..\..\Libraries\Qt\qt-5\qtbase\include -I..\..\..\Libraries\Qt\qt-5-build\qtbase\include -I..\..\..\Libraries\Qt\qt-5\qtbase\include\QtGui -I..\..\..\Libraries\Qt\qt-5-build\qtbase\include\QtGui -I..\..\..\Libraries\Qt\qt-5\qtbase\include\QtANGLE -I..\..\..\Libraries\Qt\qt-5\qtbase\include\QtCore -I..\..\..\Libraries\Qt\qt-5-build\qtbase\include\QtCore -Idebug -I..\..\..\Libraries\Qt\qt-5\qtbase\mkspecs\win32-msvc2015 -Fodebug\ @C:\Users\Venek\AppData\Local\Temp\nm1B2A.tmp qt.cpp .\qt.cpp(1): fatal error C1083: Datei (Include) kann nicht geöffnet werden: "QApplication": No such file or directory NMAKE : fatal error U1077: ""C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\cl.EXE"": Rückgabe-Code "0x2" Stop. NMAKE : fatal error U1077: ""C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\nmake.exe"": Rückgabe-Code "0x2" Stop.
Was ist da los?
MfG Kenuk
-
Bist du sicher, daß die relativen Include-Pfade "..\..\..\Libraries" so stimmen?
Welches ist das aktuelle Verzeichnis in deiner Konsole?
-
Meine Konsole befindet sich in einem Ordner auf dem Desktop, wo sich auch das Testprogramm (qt.cpp) befindet,
Meine Bibliothek liegt in C:\Libraries\Qt\qt-5-build
Die wurde vom Source gebaut und der Qt-Source liegt unter
C:\Libraries\Qt\qt-5
-
Dann tipp mal in die Konsole
dir "..\..\..\Libraries\Qt\qt-5\qtbase\include"
ein. Siehst du die Dateien-Liste oder eine Fehlermeldung?
-
Das System kann den Angegebenen Pfad nicht finden
Wieso nimmt qmake oder nmake den falschen Pfad?
Mit dir "C:\Libraries\Qt\qt-5\qtbase\include" zeigt er die Liste
-
Hast du es mal mit CMake versucht?
CMake sollte dir es ermöglichen sowohl aus der IDE als auch von der Kommandozeile einfach zu bauen.
-
Das bringt mir aber nichts wenn ständig, von nmake die falschen Pfade genommen werden, wie ändere ich das?
-
Was gibt
echo %QTDIR%
aus?
Und zeige mal deine ".pro"-Datei.
-
###################################################################### # Automatically generated by qmake (3.0) Do Aug 11 13:36:43 2016 ###################################################################### TEMPLATE = app TARGET = Qt INCLUDEPATH += . # Input SOURCES += qt.cpp
echo %QTDIR%
Ausgabe:
%QTDIR%
-
Dann setze mal QTDIR (anscheinend hat die QT-Installation das nicht gemacht) in den Systemeinstellungen.
Lies auch mal VS2015 + QT (bes. den Beitrag von Helmut.Jakoby).
-
Th69 schrieb:
Dann setze mal QTDIR (anscheinend hat die QT-Installation das nicht gemacht) in den Systemeinstellungen.
Ich habe die Lib ja auch selbst kompiliert, auf welchen Wert muss ich QTDIR setzen?
EDIT:
Ich habe jetzt eine Systemvariable namens QTDIR erstellt mit folgendem Wert:
C:\Libraries\Qt\qt-5\qtbase\include;C:\Libraries\Qt\qt-5-build\qtbase\lib;C:\Libraries\Qt\qt-5-build\qtbase\binist das richtig? Denn das funktioniert immernoch nicht
-
Ich habe jetzt am Code etwas verändert nämlich die include Zeile: von #include <QApplication> zu #include <QtWidgets/QApplication>
neue Meldung nach nmake:
Microsoft (R) Program Maintenance Utility, Version 14.00.24210.0 Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten. "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\nmake.exe" -f Makefile.Debug Microsoft (R) Program Maintenance Utility, Version 14.00.24210.0 Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten. cl -c -nologo -Zc:wchar_t -FS -Zc:strictStrings -Zc:throwingNew -Zi -MDd -GR -W3 -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 -wd4577 -EHsc /Fddebug\Qt.pdb -DUNICODE -DWIN32 -DQT_GUI_LIB -DQT_CORE_LIB -DQT_OPENGL_ES_2 -DQT_OPENGL_ES_2_ANGLE -I. -I. -I..\..\..\..\Libraries\Qt\qt-5\qtbase\include -I..\..\..\..\Libraries\Qt\qt-5-build\qtbase\include -I..\..\..\..\Libraries\Qt\qt-5\qtbase\include\QtGui -I..\..\..\..\Libraries\Qt\qt-5-build\qtbase\include\QtGui -I..\..\..\..\Libraries\Qt\qt-5\qtbase\include\QtANGLE -I..\..\..\..\Libraries\Qt\qt-5\qtbase\include\QtCore -I..\..\..\..\Libraries\Qt\qt-5-build\qtbase\include\QtCore -Idebug -I..\..\..\..\Libraries\Qt\qt-5\qtbase\mkspecs\win32-msvc2015 -Fodebug\ @C:\Users\Venek\AppData\Local\Temp\nmCCD1.tmp qt.cpp link /NOLOGO /DYNAMICBASE /NXCOMPAT /DEBUG /SUBSYSTEM:WINDOWS "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /MANIFEST:embed /OUT:debug\Qt.exe @C:\Users\Venek\AppData\Local\Temp\nmD1B4.tmp qt.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""__declspec(dllimport) public: __thiscall QApplication::QApplication(int &,char * *,int)" (__imp_??0QApplication@@QAE@AAHPAPADH@Z)" in Funktion "_main". qt.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""__declspec(dllimport) public: virtual __thiscall QApplication::~QApplication(void)" (__imp_??1QApplication@@UAE@XZ)" in Funktion "_main". qt.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""__declspec(dllimport) public: static int __cdecl QApplication::exec(void)" (__imp_?exec@QApplication@@SAHXZ)" in Funktion "_main". debug\Qt.exe : fatal error LNK1120: 3 nicht aufgelöste Externe NMAKE : fatal error U1077: ""C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\link.EXE"": Rückgabe-Code "0x460" Stop. NMAKE : fatal error U1077: ""C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\nmake.exe"": Rückgabe-Code "0x2" Stop.