Building Qt 5.15.16 from source
-
The build with Mingw 8.1 works with 5.15.16
There was a post with binary 10 days ago.
https://bin.ceicer.com/qt/ . Probably there is missing requires. -
Hi,
Usually, when a compiler crashes, it means there's an issue with the compiler.
-
You realise that between 5.15.2 and 5.15.16 there are 14 patch releases that have occurred ?
I don't know which version of MinGW is used to provide the commercial binaries but it's likely a more recent one.
You can check the bug report system to see if there's something related to such a crash. -
You realise that between 5.15.2 and 5.15.16 there are 14 patch releases that have occurred ?
I don't know which version of MinGW is used to provide the commercial binaries but it's likely a more recent one.
You can check the bug report system to see if there's something related to such a crash. -
The build with Mingw 8.1 works with 5.15.16
There was a post with binary 10 days ago.
https://bin.ceicer.com/qt/ . Probably there is missing requires. -
The build with Mingw 8.1 works with 5.15.16
There was a post with binary 10 days ago.
https://bin.ceicer.com/qt/ . Probably there is missing requires.@piervalli Hi, thanks for your help. The openssl was missing.
Now I could build both x86 and x64 version of Qt with Mingw 8.1.
But there is a problem that I couldn't figure out.
When I call x64 version of windeployqt, it copies the libgcc_s_seh-1.dll, libstdc++-6.dll and libwinpthread-1.dll from 64-bit mingw folder which is ok, but when I call x86 version of windeployqt it copies the same mentioned libraries instead of 32-bit version of libgcc_s_dw2-1.dll, libstdc++-6.dll and libwinpthread-1.dll to the folder of .exe file. -
-
@piervalli Hi, thanks for your help. The openssl was missing.
Now I could build both x86 and x64 version of Qt with Mingw 8.1.
But there is a problem that I couldn't figure out.
When I call x64 version of windeployqt, it copies the libgcc_s_seh-1.dll, libstdc++-6.dll and libwinpthread-1.dll from 64-bit mingw folder which is ok, but when I call x86 version of windeployqt it copies the same mentioned libraries instead of 32-bit version of libgcc_s_dw2-1.dll, libstdc++-6.dll and libwinpthread-1.dll to the folder of .exe file.@Pouriya From checking the source code of winployqt tool:
static QStringList compilerRunTimeLibs(const QString &qtBinDir, Platform platform, bool isDebug, unsigned short machineArch) { QStringList result; switch (platform) { case WindowsDesktopMinGW: { const QStringList minGWRuntimes = { "*gcc_"_L1, "*stdc++"_L1, "*winpthread"_L1 }; result.append(findMinGWRuntimePaths(qtBinDir, platform, minGWRuntimes)); break; } ......
static QStringList findMinGWRuntimePaths(const QString &qtBinDir, Platform platform, const QStringList &runtimeFilters) { //MinGW: Add runtime libraries. Check first for the Qt binary directory, and default to path if nothing is found. QStringList result; const bool isClang = platform == WindowsDesktopClangMinGW; QStringList filters; const QString suffix = u'*' + sharedLibrarySuffix(); for (const auto &minGWRuntime : runtimeFilters) filters.append(minGWRuntime + suffix); QFileInfoList dlls = QDir(qtBinDir).entryInfoList(filters, QDir::Files); if (dlls.isEmpty()) { std::wcerr << "Warning: Runtime libraries not found in Qt binary folder, defaulting to looking in path\n"; const QString binaryPath = isClang ? findInPath("clang++.exe"_L1) : findInPath("g++.exe"_L1); if (binaryPath.isEmpty()) { std::wcerr << "Warning: Cannot find " << (isClang ? "Clang" : "GCC") << " installation directory, " << (isClang ? "clang++" : "g++") << ".exe must be in the path\n"; return {}; } const QString binaryFolder = QFileInfo(binaryPath).absolutePath(); dlls = QDir(binaryFolder).entryInfoList(filters, QDir::Files); } for (const QFileInfo &dllFi : dlls) result.append(dllFi.absoluteFilePath()); return result; }
So it just searches for filename matches
"*gcc_*.dll"
from qt bin folder (or the PATH), not from corresponding mingw folder.