Fehler beim Build erstellen QT6
-
Für mich sieht das so aus als ob cygwin64's ninja nicht mit Backslashes klarkommt.
@tomatriga
Musst du cygwin verwenden? Cygwin hat schon seine Daseinsberechtigung. Aber wenn es anders auch geht, dann ist es anders fast immer besser.
Wenn du einfach nur auf Windows C++ Programme erstellen willst, dann würde ich dir Visual Studio empfehlen (die Community Edition von Visual Studio ist gratis). Und falls du die Visual Studio IDE nicht verwenden willst: du kannst auch CMake mit dem Visual Studio Compiler verwenden.
-
Habe jetzt mal Cygwin runter getan und MinGW genutzt.
Allerdings hat dies nichts an der Fehlermeldung gebracht, außer das jetzt MinGw genutzt. Jetzt sieht die Meldung so aus:+ C:\Qt\6.1.3\Src\qtbase\configure.bat -top-level -release -opensource -confirm-license -prefix C:\QT\6.1.3\Build 'C:/CMake/bin/cmake.exe' '-DCMAKE_INSTALL_PREFIX=C://QT//6.1.3//Build' '-DCMAKE_BUILD_TYPE=Release' '-G' 'Ninja' 'C:/Qt/6.1.3/Src' -- The CXX compiler identification is unknown -- The C compiler identification is unknown -- The ASM compiler identification is unknown -- Found assembler: C:/Strawberry/c/bin/gcc.exe -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - failed -- Check for working CXX compiler: C:/Strawberry/c/bin/c++.exe -- Check for working CXX compiler: C:/Strawberry/c/bin/c++.exe - broken CMake Error at C:/CMake/share/cmake-3.21/Modules/CMakeTestCXXCompiler.cmake:62 (message): The C++ compiler "C:/Strawberry/c/bin/c++.exe" is not able to compile a simple test program. It fails with the following output: Change Dir: C:/Qt/6.1.3/Src/CMakeFiles/CMakeTmp Run Build Command(s):C:/MinGW/bin/ninja.exe cmTC_3e64f && [1/2] Building CXX object CMakeFiles\cmTC_3e64f.dir\testCXXCompiler.cxx.obj FAILED: CMakeFiles/cmTC_3e64f.dir/testCXXCompiler.cxx.obj C:\Strawberry\c\bin\c++.exe -o CMakeFiles\cmTC_3e64f.dir\testCXXCompiler.cxx.obj -c C:\Qt\6.1.3\Src\CMakeFiles\CMakeTmp\testCXXCompiler.cxx ninja: build stopped: subcommand failed. CMake will not be able to correctly generate this project. Call Stack (most recent call first): CMakeLists.txt:11 (project) -- Configuring incomplete, errors occurred! See also "C:/Qt/6.1.3/Src/CMakeFiles/CMakeOutput.log". See also "C:/Qt/6.1.3/Src/CMakeFiles/CMakeError.log". CMake Error at qtbase/cmake/QtProcessConfigureArgs.cmake:828 (message): CMake exited with code 1.
@Th69
Ich nutze Mingw@hustbaer
Spätestens aber bei GUI Anwendungen, oder wenn ich Sie auch für Linus anbieten will, bin ich wieder bei QT.Edit: Habe mal die Cmake Files gelöscht und nun funktioniert es.
-
@tomatriga sagte in Fehler beim Build erstellen QT6:
Spätestens aber bei GUI Anwendungen, oder wenn ich Sie auch für Linus anbieten will, bin ich wieder bei QT.
Visual Studio ist eine IDE mit einem C++ Compiler. Qt ist eine Library. Was hat jetzt das eine mit dem anderen zu tun? Du kannst wunderbar Qt auf Windows verwenden und die Qt Anwendung mit dem Visual Studio C++ Compiler übersetzen.
-
Das Visual Studio eine IDE ist, ist mir bewusst.
Allerdings lässt sich mit dem QT Creator besser die GUI bauen.Aber selbst wenn ich VS nutze, muss ich QT dennoch fürs statische Linken selbst bauen.
Nun habe ich aber ein neues Problem:
configure habe ich durchlaufen lassen mit folgendem Befehl:
configure -release -opensource -confirm-license -prefix C:\QT\6.1.3\Build
Die wurde auch am Ende abgeschlossen mit der Meldung:
Qt is now configured for building. Just run 'cmake --build . --parallel' Once everything is built, you must run 'cmake --install .' Qt will be installed into 'C:/Qt/6.1.3/Build' To configure and build other Qt modules, you can use the following convenience script: C:/Qt/6.1.3/Build/bin/qt-configure-module.bat If reconfiguration fails for some reason, try to remove 'CMakeCache.txt' from the build directory -- Configuring done -- Generating done -- Build files have been written to: C:/Qt/6.1.3/Src
Nun bekomme ich allerdings beim Aufrufen von
make -j8
die Meldung
make: *** No targets specified and no makefile found. Stop.
und es ist auch keine make Datei in dem Verzeichnis zu finden.
Durch den configure Befehl müsste doch aber die make Datei erstellt wurdens ein. Was könnte ich noch probieren oder wo könnte ich noch nachschauen?
-
Kannst du nicht richtig lesen?
Qt is now configured for building. Just run 'cmake --build . --parallel'
make
undcmake
sind zwei verschiedene Programme.
-
@Th69 sagte in Fehler beim Build erstellen QT6:
cmake --build . --parallel
Das hatte ich zwar gelesen, doch da ich der Anleitung aus dem Video folgen wollte habe ich make genommen.
Habe jetzt "cmake --build . --parallel" augeführt, aber leider bricht es gleich zu Anfang mit der Fehlermeldung:
~~
compilation terminated.
ninja: build stopped: subcommand failed.
~~ab.
-
Anscheinend ist "ninja" umbekannt. Ist der Pfad dazu in
PATH
eingetragen (set path
)?Edit: s.a. Qt for Windows - Building from Source "Step 3: Set the Environment Variables".
-
Habe gerade geschaut mit "ninja --version" und mir wird 1.10.2 angezeigt.
Außerdem ist "C:\Mingw\bin" in den PATH eingetragen und darin befindet sich auch ninja.exeHier mal ein größerer Auszug der Meldung:
compilation terminated. [6/7275] Building CXX object qtbase/src/3rdparty/harfbuzz-ng/CMakeFiles/BundledHarfbuzz.dir/hb-dummy.cc.obj FAILED: qtbase/src/3rdparty/harfbuzz-ng/CMakeFiles/BundledHarfbuzz.dir/hb-dummy.cc.obj C:\MinGW\bin\c++.exe -DHAVE_ATEXIT -DHAVE_CONFIG_H -DHAVE_OT -DHB_EXTERN="" -DHB_NDEBUG -DHB_NO_UNICODE_FUNCS -DHB_NO_WIN1256 -DQT_NO_DEBUG -DQT_NO_EXCEPTIONS -DQT_NO_VERSION_TAGGING -D_USE_MATH_DEFINES -IC:/Qt/6.1.3/Src/qtbase/src/3rdparty/harfbuzz-ng/include/harfbuzz -IC:/Qt/6.1.3/Src/qtbase/src/corelib/Core_autogen/include -IC:/Qt/6.1.3/Src/qtbase/include -IC:/Qt/6.1.3/Src/qtbase/include/QtCore -IC:/Qt/6.1.3/Src/qtbase/src/corelib -IC:/Qt/6.1.3/Src/qtbase/src/corelib/global -IC:/Qt/6.1.3/Src/qtbase/src/corelib/kernel -IC:/Qt/6.1.3/Src/qtbase/src/corelib/../3rdparty/tinycbor/src -IC:/Qt/6.1.3/Src/qtbase/include/QtCore/6.1.3 -IC:/Qt/6.1.3/Src/qtbase/include/QtCore/6.1.3/QtCore -IC:/Qt/6.1.3/Src/qtbase/src/corelib/../3rdparty -IC:/Qt/6.1.3/Src/qtbase/src/corelib/../3rdparty/double-conversion/include -IC:/Qt/6.1.3/Src/qtbase/src/corelib/.rcc -IC:/Qt/6.1.3/Src/qtbase/mkspecs/win32-g++ -IC:/Strawberry/c/include -IC:/Qt/6.1.3/Src/qtbase/src/3rdparty/pcre2/src -IC:/Qt/6.1.3/Src/qtbase/src/3rdparty/harfbuzz-ng -DNDEBUG -O2 -fvisibility=hidden -fno-keep-inline-dllexport -w -fno-exceptions -std=c++1z -MD -MT qtbase/src/3rdparty/harfbuzz-ng/CMakeFiles/BundledHarfbuzz.dir/hb-dummy.cc.obj -MF qtbase\src\3rdparty\harfbuzz-ng\CMakeFiles\BundledHarfbuzz.dir\hb-dummy.cc.obj.d -o qtbase/src/3rdparty/harfbuzz-ng/CMakeFiles/BundledHarfbuzz.dir/hb-dummy.cc.obj -c C:/Qt/6.1.3/Src/qtbase/src/3rdparty/harfbuzz-ng/hb-dummy.cc In file included from C:/Qt/6.1.3/Src/qtbase/src/3rdparty/harfbuzz-ng/src/hb-common.cc:29:0, from C:/Qt/6.1.3/Src/qtbase/src/3rdparty/harfbuzz-ng/hb-dummy.cc:7: C:/Qt/6.1.3/Src/qtbase/src/3rdparty/harfbuzz-ng/src/hb.hh:201:26: fatal error: winapifamily.h: No such file or directory #include <winapifamily.h> ^ compilation terminated. ninja: build stopped: subcommand failed. C:\Qt\6.1.3\Src>ninja --version 1.10.2
-
OK, der Fehler ist doch eindeutig beim Bauen der
HarfBuzz-NG
lib.
Benötigst du denn HarfBuzz? Ansonsten entferne es aus der Module-Liste von Qt: HarfBuzz-NG, version 2.9.0
-
Danke, habe es entfernt und damit startete es wenigstens.
Nun habe ich allerdings erneut eine Fehlermeldung:Qt is now configured for building. Just run 'cmake --build . --parallel' Once everything is built, you must run 'cmake --install .' Qt will be installed into 'C:/Qt/6.1.3/Build' To configure and build other Qt modules, you can use the following convenience script: C:/Qt/6.1.3/Build/bin/qt-configure-module.bat If reconfiguration fails for some reason, try to remove 'CMakeCache.txt' from the build directory -- Configuring incomplete, errors occurred! See also "C:/Qt/6.1.3/Src/CMakeFiles/CMakeOutput.log". See also "C:/Qt/6.1.3/Src/CMakeFiles/CMakeError.log". FAILED: build.ninja C:\CMake\bin\cmake.exe --regenerate-during-build -SC:\Qt\6.1.3\Src -BC:\Qt\6.1.3\Src ninja: error: rebuilding 'build.ninja': subcommand failed
So langsam werde ich wahnsinnig. Warum bekomme ich es nicht hin? Ist es denn wirklich so schweirig?
Kann es sein, dass ich irgendwelches Vorwissen dafür benötige?
-
Anscheinend hast du schon zu oft bauen lassen - da scheinen noch einige Artefakte übrig zu sein.
Lösche, wie angegeben,CMakeCache.txt
(oder aber gleich das gesamteBuild
-Verzeichnis).Schau auch in die angegebenen Log-Dateien.
-
Habe jetzt das gesamte Src Verzeichniss (das meintest du doch, oder?) nochmals gelöscht und erneut alle Schritte ausgeführt.
Allerdings bleibt es bei dem Ergebnis, bekomme wieder die gleiche Fehlermeldung.
-
@tomatriga sagte in Fehler beim Build erstellen QT6:
-- Configuring incomplete, errors occurred! See also "C:/Qt/6.1.3/Src/CMakeFiles/CMakeOutput.log". See also "C:/Qt/6.1.3/Src/CMakeFiles/CMakeError.log".
Naja, hast du da mal reingeschaut?
-
Ja sicherlich habe ich da schon hereingeschaut, allerdings steht da am Ende auch wieder der gleiche Fehler:
C:/Qt/6.1.3/Src/CMakeFiles/CMakeTmp/src.cxx:3:29: fatal error: uaplatformlayer.h: No such file or directory #include <uaplatformlayer.h> ^ compilation terminated. ninja: build stopped: subcommand failed. Source file was: #include <stdio.h> #include <uaplatformlayer.h> #include <uastring.h> #include <uasession.h> using namespace UaClientSdk; int main(int /*argc*/, char ** /*argv*/) { UaPlatformLayer::init(); UaSession *session = new UaSession; UaPlatformLayer::cleanup(); return 0; }
Ich habe immer nur am Ende geschaut, da die Files über 9000 Zeilen haben. Oder wie analysiert ihr solche Files?
-
Und wieder ein 3rd-party Module: Qt OPC UA...
Hast du alle Qt Module aktiviert? Du solltest ersteinmal nur die "Qt Essentials" compilieren lassen.
-
@tomatriga sagte in Fehler beim Build erstellen QT6:
Ja sicherlich habe ich da schon hereingeschaut
Na wunderbar. Können wir bloss nicht wissen wenn du es nicht dazuschreibst.
allerdings steht da am Ende auch wieder der gleiche Fehler:
C:/Qt/6.1.3/Src/CMakeFiles/CMakeTmp/src.cxx:3:29: fatal error: uaplatformlayer.h: No such file or directory #include <uaplatformlayer.h> ^ compilation terminated.
Das ist ein Fehler den du noch nie hier gepostet hast. Also zumindest für uns entschieden nicht "wieder der gleiche Fehler".