Failing to build Qt 6.6.2 from source on Windows 10 with MinGW64 compiler
-
I am having trouble building Qt 6.6.2 from source on my Windows 10 system following the steps provided from Qt for Windows - Building from Source. Because my internet connection is inconsistent, I cannot rely on the installer to install the Qt framework, therefore I am building from source. Although I am aware of various compilers (e.g. MSVC), I am only using MinGW in the hopes that this will be repeated in the future. My current system info are the following:
- OS: Windows 10
- Build Tools
- Compilers: ONLY MinGW64
- Download MinGW and add to PATH: *C:\Program Files\mingw64\bin*
- Winlibs standalone build
- UCRT runtime
- GCC 13.2.0 (with POSIX threads) + LLVM/Clang/LLD/LLDB 17.0.6 + MinGW-w64 11.0.1 (UCRT) - release 5
I will walk you through the steps I took to encounter my current issue in with the system configuration mentioned above where hopefully someone can point out possible places where I might have made a mistake or run into difficulties.
Attempt #1 for building on windows
After configuring my Windows 10 I did the following:
- Downloaded the source file and extracted in Downloads folder
- created build directory in source folder and then
cd
into folder:
C:\Users\kyrlon\Downloads\qt-everywhere-src-6.6.2\build
- ran the configure.bat like the following:
PS C:\Users\kyrlon\Downloads\qt-everywhere-src-6.6.2\build> ..\configure.bat
At step 3 is where I got my first issue with building from source with the error message stating a missing reference regarding the imported
LLVMDemangle
. I've added the output from Step 3 in the pastebin link with line numbers to make it easier to reference topics: https://pastebin.com/UEDRXRBAFrom the output on line 0164, it mentions that it cannot find a missing static library
"C:/Program Files/mingw64/lib/libLLVMDemangle.dll.a"
. I could not find this file and with a quick google search this stack-overflow post was the only mention of a similar error. I am not familiar with shared libraries on Windows. Searching the folder I came acrosslibLLVMDemangle.dll
file inC:\Program Files\mingw64\bin
. Still no idea what to do at this point, grudgingly I resorted to asking chatgpt on converting a .dll to a .dll.a and the response was to first generate a.def
file with thegendef
tool in thebin/
folder of minGW and then convert that file to adll.a
with thedlltool
. I made the file that was originally stated to be missing"C:/Program Files/mingw64/lib/libLLVMDemangle.dll.a"
and got more errors of missing static libraries. I ended up making a python script to convert missing static libraries from the cmake fileC:/Program Files/mingw64/lib/cmake/llvm/LLVMConfig.cmake
with the following commands:import linecache from pathlib import Path import subprocess, shutil bin_dir = Path(r"C:\Program Files\mingw64\bin") lib_dir = Path(r"C:\Program Files\mingw64\lib") lib = linecache.getline(r"C:/Program Files/mingw64/lib/cmake/llvm/LLVMExports.cmake", 22) lib = lib.split("ITEMS") lib = lib[1:][0] lib = lib.split(")")[0] lib = lib.split() tmp = Path(__file__).resolve().parent tmp = tmp / "tmp" tmp.mkdir(parents=True, exist_ok=True) for l in lib: if (p:=Path(bin_dir / f"lib{l}.dll")).is_file(): shutil.copy(p, tmp/p.name) cmd1 = f"gendef {str(tmp/p.name)}" subprocess.run(cmd1.split(), shell=True, cwd=tmp) cmd2 = f"dlltool -d {str(p.stem)}.def -l {str(p.stem)}.dll.a" subprocess.run(cmd2.split(), shell=True, cwd=tmp) shutil.copy(str(tmp/p.stem)+".dll.a", lib_dir)
- Run (AS ADMIN) the code block above to generate static libraries for cmake expected targets.
Attempt # 2 for building on windows
- After generated static libraries, cleared out the build folder and ran the configure.bat like the following:
PS C:\Users\kyrlon\Downloads\qt-everywhere-src-6.6.2\build> ..\configure.bat
Further, but came across missing static libraries for clang
C:\Program Files\mingw64\lib\cmake\clang\ClangTargets.cmake
this time. In similar fashion, a python script was made to generate static libraries:import linecache from pathlib import Path import subprocess, shutil bin_dir = Path(r"C:\Program Files\mingw64\bin") lib_dir = Path(r"C:\Program Files\mingw64\lib") lib = linecache.getline(r"C:\Program Files\mingw64\lib\cmake\clang\ClangTargets.cmake", 22) lib = lib.split("ITEMS") lib = lib[1:][0] lib = lib.split(")")[0] lib = lib.split() tmp = Path(__file__).resolve().parent tmp = tmp / "tmp_clang" tmp.mkdir(parents=True, exist_ok=True) for l in lib: if (p:=Path(bin_dir / f"lib{l}.dll")).is_file(): shutil.copy(p, tmp/p.name) cmd1 = f"gendef {str(tmp/p.name)}" subprocess.run(cmd1.split(), shell=True, cwd=tmp) cmd2 = f"dlltool -d {str(p.stem)}.def -l {str(p.stem)}.dll.a" subprocess.run(cmd2.split(), shell=True, cwd=tmp) shutil.copy(str(tmp/p.stem)+".dll.a", lib_dir)
- Run (AS ADMIN) the code block above to generate static libraries for cmake expected targets.
Attempt # 3 for building on windows
- After generated static libraries, cleared out the build folder and ran the configure.bat like the following:
PS C:\Users\kyrlon\Downloads\qt-everywhere-src-6.6.2\build> ..\configure.bat
This time I got an error stating that it was missing a python module
html5lib
.- Fix python error by doing a global
pip install html5lib
to system.
Attempt # 4 for building windows
- After generated static libraries, cleared out the build folder and ran the configure.bat like the following:
PS C:\Users\kyrlon\Downloads\qt-everywhere-src-6.6.2\build> ..\configure.bat
Now this is the output from the command when Configuring Done (with alot of warnings): https://pastebin.com/6BhtMFcY
- Run the command
cmake --build . --parallel
Now after step 3, I get an error in this output: https://pastebin.com/m5rmQp0T
Here it states that no such file or directory for
qwindowsmediadevices_p.h
I believe that at this point, I would be changing the files that ought to have been created. If anyone has an idea on next steps to attempt, I am open for suggestions! -
Have a look at https://wiki.qt.io/MinGW for the MinGW toolchain used to build Qt.
Qt uses the releases from https://github.com/niXman/mingw-builds-binaries/releases
The winlib's MinGW is not supported. You need to ask winlib for support.
-
-
@cristian-adam Thanks for pointing that out. As mentioned by your comment, I was using an incompatible version of minGW. I then downloaded the compatible MinGW and added to PATH
Attempt # 5 for building on windows
- Cleared out the build folder and ran the configure.bat like the following:
PS C:\Users\kyrlon\Downloads\qt-everywhere-src-6.6.2\build> ..\configure.bat
-
Ran the command
cmake --build . --parallel
Got a bunch of errors stating that it could not remove certain files with what it looks likemingw-32-make.exe
: https://pastebin.com/N1Kctyf6 -
Ran the command
cmake --build . --parallel
Got a bunch of errors again this time failing at 10% with just Error2: https://pastebin.com/j6hUEWeX
Attempt # 6 for building on windows
Decided to use ninja to see if there is any difference with a different build tool added since it was recommended, but not required. Downloaded ninja v1.11.1 and added to PATH
- Cleared out the build folder and ran the configure.bat like the following:
PS C:\Users\kyrlon\Downloads\qt-everywhere-src-6.6.2\build> ..\configure.bat
- Ran the command
cmake --build . --parallel
Got a bunch of no outputs generated. Eventually got a FAILED:
FAILED: qtmultimedia/src/plugins/multimedia/windows/CMakeFiles/QWindowsMediaPlugin.dir/qwindowsintegration.cpp.obj
Here is a log output for this attempt: https://pastebin.com/sVUR1jGa
This error is similar to Attempt #4, and I am not sure why this file would be missing. -
Qt 6.6.2 is being released with a MinGW build.
At https://testresults.qt.io/coin/integration/qt/qtmultimedia/tasks/1707528820 I can see a qtmultimedia 6.6.2 integration.
windows-10_22h2-mingw11 raw log has:
agent:2024/02/10 00:14:45 build.go:795: Executing instruction 59 of 97 - ExecuteCommand agent:2024/02/10 00:14:45 build.go:427: [\Users\qt\work\install\bin\qt-configure-module.bat \Users\qt\work\qt\qtmultimedia -- -DFFMPEG_DIR=C:\ffmpeg-n6.1\build\mingw\installed -DFEATURE_native_grpc=OFF -DCMAKE_IGNORE_PREFIX_PATH=C:/strawberry/c -DQT_BUILD_TESTS=OFF -DCMAKE_AUTOGEN_VERBOSE=ON -DCMAKE_MESSAGE_LOG_LEVEL=STATUS -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CXX_COMPILER_LAUNCHER=sccache] 1h40m0s 20m0s false false agent:2024/02/10 00:14:45 build.go:404: 'C:\Users\qt\work\install\bin\\qt-cmake-private.bat' '-DFFMPEG_DIR=C:\ffmpeg-n6.1\build\mingw\installed' '-DFEATURE_native_grpc=OFF' '-DCMAKE_IGNORE_PREFIX_PATH=C:/strawberry/c' '-DQT_BUILD_TESTS=OFF' '-DCMAKE_AUTOGEN_VERBOSE=ON' '-DCMAKE_MESSAGE_LOG_LEVEL=STATUS' '-DCMAKE_C_COMPILER_LAUNCHER=sccache' '-DCMAKE_CXX_COMPILER_LAUNCHER=sccache' '-DQT_INTERNAL_CALLED_FROM_CONFIGURE:BOOL=TRUE' 'C:/Users/qt/work/qt/qtmultimedia' agent:2024/02/10 00:14:48 build.go:404: -- The CXX compiler identification is GNU 11.2.0 agent:2024/02/10 00:14:51 build.go:404: -- The C compiler identification is GNU 11.2.0 agent:2024/02/10 00:14:51 build.go:404: -- Detecting CXX compiler ABI info agent:2024/02/10 00:14:52 build.go:404: -- Detecting CXX compiler ABI info - done agent:2024/02/10 00:14:52 build.go:404: -- Check for working CXX compiler: C:/MINGW1120/mingw64/bin/g++.exe - skipped agent:2024/02/10 00:14:52 build.go:404: -- Detecting CXX compile features agent:2024/02/10 00:14:52 build.go:404: -- Detecting CXX compile features - done agent:2024/02/10 00:14:52 build.go:404: -- Detecting C compiler ABI info agent:2024/02/10 00:14:52 build.go:404: -- Detecting C compiler ABI info - done agent:2024/02/10 00:14:53 build.go:404: -- Check for working C compiler: C:/MINGW1120/mingw64/bin/gcc.exe - skipped agent:2024/02/10 00:14:53 build.go:404: -- Detecting C compile features agent:2024/02/10 00:14:53 build.go:404: -- Detecting C compile features - done agent:2024/02/10 00:14:53 build.go:404: -- Performing Test CMAKE_HAVE_LIBC_PTHREAD agent:2024/02/10 00:14:53 build.go:404: -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success agent:2024/02/10 00:14:53 build.go:404: -- Found Threads: TRUE agent:2024/02/10 00:14:54 build.go:404: -- Performing Test HAVE_STDATOMIC agent:2024/02/10 00:14:54 build.go:404: -- Performing Test HAVE_STDATOMIC - Success agent:2024/02/10 00:14:54 build.go:404: -- Found WrapAtomic: TRUE agent:2024/02/10 00:14:57 build.go:404: -- CMAKE_BUILD_TYPE was set to: 'RelWithDebInfo' agent:2024/02/10 00:14:57 build.go:404: -- Checking for feature set changes agent:2024/02/10 00:14:57 build.go:404: -- CMAKE_STRIP (original): C:/MINGW1120/mingw64/bin/strip.exe agent:2024/02/10 00:14:57 build.go:404: -- Performing Test strip --keep-section agent:2024/02/10 00:14:58 build.go:404: -- Performing Test strip --keep-section - TRUE agent:2024/02/10 00:14:58 build.go:404: -- CMAKE_STRIP (used by Qt): C:/Users/qt/work/qt/qtmultimedia_build/./bin/qt-internal-strip.bat agent:2024/02/10 00:14:58 build.go:404: -- Could NOT find ALSA (missing: ALSA_LIBRARY ALSA_INCLUDE_DIR) agent:2024/02/10 00:14:59 build.go:404: -- Could NOT find AVFoundation (missing: AVFoundation_LIBRARY) agent:2024/02/10 00:14:59 build.go:404: -- Could NOT find GLIB2 (missing: GLIB2_LIBRARIES GTHREAD2_LIBRARIES GLIB2_INCLUDE_DIRS) agent:2024/02/10 00:14:59 build.go:404: -- Could NOT find GLIB2 (missing: GLIB2_LIBRARIES GTHREAD2_LIBRARIES GLIB2_INCLUDE_DIRS) agent:2024/02/10 00:15:00 build.go:404: -- Could NOT find GLIB2 (missing: GLIB2_LIBRARIES GTHREAD2_LIBRARIES GLIB2_INCLUDE_DIRS) agent:2024/02/10 00:15:00 build.go:404: -- Could NOT find GLIB2 (missing: GLIB2_LIBRARIES GTHREAD2_LIBRARIES GLIB2_INCLUDE_DIRS) agent:2024/02/10 00:15:00 build.go:404: -- Could NOT find MMRendererCore (missing: MMRendererCore_LIBRARY) agent:2024/02/10 00:15:00 build.go:404: -- Could NOT find MMRenderer (missing: MMRenderer_LIBRARY) agent:2024/02/10 00:15:01 build.go:404: -- Could NOT find WrapPulseAudio (missing: PULSEAUDIO_LIBRARY PULSEAUDIO_INCLUDE_DIR WrapPulseAudio_FOUND) agent:2024/02/10 00:15:02 build.go:404: -- Found WMF: C:/MINGW1120/mingw64/x86_64-w64-mingw32/lib/libstrmiids.a agent:2024/02/10 00:15:02 build.go:404: -- Performing Test HAVE_EGL agent:2024/02/10 00:15:02 build.go:404: -- Performing Test HAVE_EGL - Failed agent:2024/02/10 00:15:02 build.go:404: -- Could NOT find EGL (missing: EGL_INCLUDE_DIR HAVE_EGL EGL_LIBRARY) agent:2024/02/10 00:15:03 build.go:404: -- Found FFmpeg: libavcodec.a;libavformat.a;libavutil.a;libswresample.a;libswscale.a found components: AVCODEC AVFORMAT AVUTIL SWRESAMPLE SWSCALE agent:2024/02/10 00:15:03 build.go:404: -- Could NOT find VAAPI (missing: VAAPI_VA_FOUND VAAPI_DRM_FOUND VA DRM) agent:2024/02/10 00:15:03 build.go:404: -- Performing Test evr.h agent:2024/02/10 00:15:06 build.go:404: -- Performing Test evr.h - Success agent:2024/02/10 00:15:06 build.go:404: -- Performing Test Vivante GPU agent:2024/02/10 00:15:07 build.go:404: -- Performing Test Vivante GPU - Failed agent:2024/02/10 00:15:07 build.go:404: -- Performing Test Video for Linux agent:2024/02/10 00:15:07 build.go:404: -- Performing Test Video for Linux - Failed agent:2024/02/10 00:15:07 build.go:404: -- Performing Test wmsdk.h agent:2024/02/10 00:15:10 build.go:404: -- Performing Test wmsdk.h - Success agent:2024/02/10 00:15:10 build.go:404: -- Performing Test Linux DMA buffer support - Failed because EGL::EGL not found agent:2024/02/10 00:15:10 build.go:404: -- Performing Test HAVE_DASH_UNDEFINED_SYMBOLS agent:2024/02/10 00:15:11 build.go:404: -- Performing Test HAVE_DASH_UNDEFINED_SYMBOLS - Success agent:2024/02/10 00:15:11 build.go:404: -- Performing Test HAVE_DASH_DASH_NO_UNDEFINED agent:2024/02/10 00:15:11 build.go:404: -- Performing Test HAVE_DASH_DASH_NO_UNDEFINED - Success agent:2024/02/10 00:15:12 build.go:404: -- Could NOT find EGL (missing: EGL_INCLUDE_DIR HAVE_EGL EGL_LIBRARY) agent:2024/02/10 00:15:13 build.go:404: -- Could NOT find VAAPI (missing: VAAPI_VA_FOUND VAAPI_DRM_FOUND VA DRM) agent:2024/02/10 00:15:13 build.go:404: -- Generated QtModulePlugins.cmake files for the following modules: Multimedia agent:2024/02/10 00:15:13 build.go:404: -- The following packages have been found: agent:2024/02/10 00:15:13 build.go:404: * Qt6BuildInternals (required version >= 6.6.2) agent:2024/02/10 00:15:13 build.go:404: * Qt6CoreTools (required version >= 6.6.2) agent:2024/02/10 00:15:13 build.go:404: * Qt6Core (required version >= 6.6.2) agent:2024/02/10 00:15:13 build.go:404: * Vulkan agent:2024/02/10 00:15:13 build.go:404: * Qt6GuiTools (required version >= 6.6.2) agent:2024/02/10 00:15:13 build.go:404: * Qt6Gui (required version >= 6.6.2) agent:2024/02/10 00:15:13 build.go:404: * Qt6Network (required version >= 6.6.2) agent:2024/02/10 00:15:13 build.go:404: * Qt6Svg (required version >= 6.6.2) agent:2024/02/10 00:15:13 build.go:404: * Qt6WidgetsTools (required version >= 6.6.2) agent:2024/02/10 00:15:13 build.go:404: * Qt6Widgets (required version >= 6.6.2) agent:2024/02/10 00:15:13 build.go:404: * Qt6QmlTools (required version >= 6.6.2) agent:2024/02/10 00:15:13 build.go:404: * WrapVulkanHeaders agent:2024/02/10 00:15:13 build.go:404: * Qt6Quick (required version >= 6.6.2) agent:2024/02/10 00:15:13 build.go:404: * Qt6QuickTest (required version >= 6.6.2) agent:2024/02/10 00:15:13 build.go:404: * Qt6QuickControls2 (required version >= 6.6.2) agent:2024/02/10 00:15:13 build.go:404: * Qt6Quick3DTools (required version >= 6.6.2) agent:2024/02/10 00:15:13 build.go:404: * Qt6ShaderToolsTools (required version >= 6.6.2) agent:2024/02/10 00:15:13 build.go:404: * Qt6Quick3D (required version >= 6.6.2) agent:2024/02/10 00:15:13 build.go:404: * Qt6 agent:2024/02/10 00:15:13 build.go:404: * WMF agent:2024/02/10 00:15:13 build.go:404: * FFmpeg agent:2024/02/10 00:15:13 build.go:404: -- The following OPTIONAL packages have not been found: agent:2024/02/10 00:15:13 build.go:404: * Qt6QmlCompilerPlusPrivate agent:2024/02/10 00:15:13 build.go:404: * ALSA agent:2024/02/10 00:15:13 build.go:404: * AVFoundation agent:2024/02/10 00:15:13 build.go:404: * GStreamer agent:2024/02/10 00:15:13 build.go:404: * MMRendererCore agent:2024/02/10 00:15:13 build.go:404: * MMRenderer agent:2024/02/10 00:15:13 build.go:404: * PulseAudio agent:2024/02/10 00:15:13 build.go:404: * WrapPulseAudio agent:2024/02/10 00:15:13 build.go:404: * EGL, A platform-agnostic mechanism for creating rendering surfaces for use with other graphics libraries, such as OpenGL|ES and OpenVG., <https://www.khronos.org/egl/> agent:2024/02/10 00:15:14 build.go:404: * PkgConfig agent:2024/02/10 00:15:14 build.go:404: * VAAPI agent:2024/02/10 00:15:14 build.go:404: -- Configuration summary shown below. It has also been written to C:/Users/qt/work/qt/qtmultimedia_build/config.summary agent:2024/02/10 00:15:14 build.go:404: -- Configure with --log-level=STATUS or higher to increase CMake's message verbosity. The log level does not persist across reconfigurations. agent:2024/02/10 00:15:14 build.go:404: agent:2024/02/10 00:15:14 build.go:404: -- Configure summary: agent:2024/02/10 00:15:14 build.go:404: Qt Multimedia: agent:2024/02/10 00:15:14 build.go:404: Spatial Audio .......................... yes agent:2024/02/10 00:15:14 build.go:404: Spatial Audio (Quick3D) ................ yes agent:2024/02/10 00:15:14 build.go:404: Low level Audio Backend: agent:2024/02/10 00:15:14 build.go:404: ALSA (experimental) .................. no agent:2024/02/10 00:15:14 build.go:404: PulseAudio ........................... no agent:2024/02/10 00:15:14 build.go:404: MMRenderer ........................... no agent:2024/02/10 00:15:14 build.go:404: CoreAudio ............................ no agent:2024/02/10 00:15:14 build.go:404: Windows Media SDK .................... yes agent:2024/02/10 00:15:14 build.go:404: Open SLES (Android) .................. no agent:2024/02/10 00:15:14 build.go:404: Web Assembly ......................... no agent:2024/02/10 00:15:14 build.go:404: Plugin: agent:2024/02/10 00:15:14 build.go:404: GStreamer 1.0 ........................ no agent:2024/02/10 00:15:14 build.go:404: FFmpeg ............................... yes agent:2024/02/10 00:15:14 build.go:404: MMRenderer ........................... no agent:2024/02/10 00:15:14 build.go:404: AVFoundation ......................... no agent:2024/02/10 00:15:14 build.go:404: Windows Media Foundation ............. yes agent:2024/02/10 00:15:14 build.go:404: Hardware acceleration and features: agent:2024/02/10 00:15:14 build.go:404: Video for Linux ...................... no agent:2024/02/10 00:15:14 build.go:404: VAAPI support ........................ no agent:2024/02/10 00:15:14 build.go:404: Linux DMA buffer support ............. no agent:2024/02/10 00:15:14 build.go:404: VideoToolbox ......................... no agent:2024/02/10 00:15:14 build.go:404:
Doing a search on Jira points to https://bugreports.qt.io/browse/QTBUG-114540 which might have information which would help.
-
@cristian-adam Thanks for the response. I have not seen my error/bug so I created a new issue
-
@kyrlon said in Failing to build Qt 6.6.2 from source on Windows 10 with MinGW64 compiler:
and I am not sure why this file would be missing.
Because the path is to long. Use a shorter source and build path and blame MS.
-
@kyrlon It could be that the path is too long for the MinGW GCC.
At https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107974 I have a bugreport with a workaround to make gcc accept long paths:
I've used the manifest tool from Visual C++ (mt.exe) to inject this manifest:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <!-- Copyright (c) Microsoft Corporation --> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <application xmlns="urn:schemas-microsoft-com:asm.v3"> <windowsSettings xmlns:ws2="http://schemas.microsoft.com/SMI/2016/WindowsSettings"> <ws2:longPathAware>true</ws2:longPathAware> </windowsSettings> </application> </assembly>
with the command line:
mt.exe -nologo -manifest "cc1plus.exe.manifest" -outputresource:"cc1plus.exe;#1"
Ninja requires the same treatment, see https://github.com/ninja-build/ninja/pull/2225
-
@cristian-adam I am not too familiar with this. Do I run this in the minGW bin? I do not have a
cc1plus.exe
on my system. -
Attempt # 7 for building on windows
Decided to use ninja that had fix in it, so I compiled from source on windows and replaced with new ninja in PATH
- Cleared out the build folder and ran the configure.bat like the following:
PS C:\Users\kyrlon\Downloads\qt-everywhere-src-6.6.2\build> ..\configure.bat
- Ran the command
cmake --build . --parallel
Got another output fail due to missing header:
C:/Users/kyrlon/Downloads/qt-everywhere-src-6.6.2/qtmultimedia/src/multimedia/windows/qwindowsmediadevices_p.h:19:10: fatal error: qplatformmediadevices_p.h: No such file or directory 19 | #include <qplatformmediadevices_p.h> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ compilation terminated.
Attempt # 8 for building on windows [SUCCESS!!]
Trying the suggestion by Christian Ehrlicher, and decided to build in the
C:\
path directly, but this required a terminal with ADMIN priv.- Cleared out the build folder and ran the configure.bat like the following:
PS C:\qt6\build> ..\configure.bat
- Ran the command
cmake --build . --parallel
SUCCESS! - Ran the command:
PS C:\qt6\build> cmake --install .
No issues and everything was installed.
This attempt appears to be successful, but I'm not sure if trying to build from source every time from different machines would allow me to always have access to
C:\
. -
@kyrlon said in Failing to build Qt 6.6.2 from source on Windows 10 with MinGW64 compiler:
allow me to always have access to C:.
You can also build in your user home folder like c:\users\USER_NAME\QT_BUILD_FOLDER
-
@jsulm Good point. In general, I am aware that this is a Windows problem, but tampering with registry keys to disable the character path limit is not the ideal solution for different systems in use. Since I don't do much development on Windows, I was just wondering if this was a gcc or cmake limitation?
-
@kyrlon said in Failing to build Qt 6.6.2 from source on Windows 10 with MinGW64 compiler:
Since I don't do much development on Windows, I was just wondering if this was a gcc or cmake limitation?
Because the path is to long. Use a shorter source and build path and blame MS
Already answered two days ago...
-
@jsulm said in Failing to build Qt 6.6.2 from source on Windows 10 with MinGW64 compiler:
Too long paths is a Windows limitation
Not quite. Windows has support for long paths (>255 characters) since Windows 10 version 1607 released on August 2015.
But the applications need to opt-in in order to use the new functionality.
It's a tooling problem:
- Ninja - Is fixed but waiting for an official release (1.12)
- GCC - Not fixed.
- Visual C++ - Not fixed.
- moc - Fixed since Qt 6.5.
- make - Not fixed, but forgot to open a bug report.
- clang - Works out of the box.
- cmake - Works out of the box.
So on Windows if you take llvm-mingw and a patched ninja you would be able to compile with clang and Qt 6.5+ just fine.
-
@cristian-adam said in Failing to build Qt 6.6.2 from source on Windows 10 with MinGW64 compiler:
But the applications need to opt-in in order to use the new functionality
Well, yes. But you can also see it as on OS problem if user has to do something special just to be able to use long paths. And I think this is a system wide setting and not per-application.
-
Attempt # 9 for building on windows
Tried your suggestion, but got the same error of missing file of
qplatformmediadevices_p.h
- Cleared out the build folder and ran the configure.bat like the following:
PS C:\qt6\build> ..\configure.bat
- Ran the command
cmake --build . --parallel
Buikld stop with missing header file: https://pastebin.com/AZ7zDM2d
I used the version of llvm-mingw:
version of ninja used:
PS C:\Users\kyrlon\Downloads\qt-everywhere-src-6.6.2\build> ninja --version 1.12.0.git
-
@jsulm said in Failing to build Qt 6.6.2 from source on Windows 10 with MinGW64 compiler:
You can also build in your user home folder like c:\users\USER_NAME\QT_BUILD_FOLDER
Another alternative is to use a virtual drive using the subst command. I might make this attempt later.
-
Attempt # 10 for building on windows [SUCCESS!!]
Started from scratch by re-downloading the source and used the
subst
command to make a new path to build with.- Created a virtual drive to avoid the PATH length limit:
subst a: .\qt-everywhere-src-6.6.2\
- created the build folder and ran the configure.bat like the following:
PS a:\build> ..\configure.bat
-
Ran the command
cmake --build . --parallel
-
Ran the install command afterwards
PS a:\build> cmake --build . --parallel
No issues and everything was installed.
-