> Вы когда код цитируете, вы его читаете?
> #if defined(Q_CC_MSVC) && !defined(_DLL) // && !defined(Q_OS_WINRT)
> # ifdef Q_OS_WINRT
> Вам эти дефайны ничего не говорят?Говорят, что дальше Вы не смогли прочитать. Попробуйте ещё раз, для начала:
# ifdef Q_OS_WINRT
// If you wish to accept the memory leaks, uncomment the part above.
// See:
// https://support.microsoft.com/en-us/kb/104641
// https://msdn.microsoft.com/en-us/library/kdzttdcb.aspx
# error "Microsoft documentation says this combination leaks memory every time a thread is started. " \
"Please change your build back to -MD/-MDd or, if you understand this issue and want to continue, " \
"edit this source file."
# endif
> Помимо Q_CC_MSVC там еще есть код, который компилируется Q_CC_GNU (GCC и MinGW),
> Q_CC_CLANG (CLANG, что собственно и говорит из названия). И даже макрос
> поддержки кода для Borland C++ есть Q_CC_BOR.
Что-то Вы забыли привести этот код. Наверное, потому что он плохо вписывается в Вашу гипотезу про --enable-threads=win32
#else
// MSVC -MD or -MDd or MinGW build
d->handle = CreateThread(nullptr, d->stackSize,
reinterpret_cast<LPTHREAD_START_ROUTINE>(QThreadPrivate::start),
this, CREATE_SUSPENDED, reinterpret_cast<LPDWORD>(&d->id));
> Q_OS_WINRT А этот макрос вообще для Windows RT. Приведенный вами фрагмент вообще
> не собирается для Windows x86.
Ещё раз. В Win32 API нет другого способа создать тред, кроме как CreateThread (точнее, NtCreateThread, если не считать пула потоков, о котором MinGW знает вряд ли больше здешних экспертов). И всё это не имеет отношения к вопросу. Эта часть Qt должна собираться и работать и в будущих версиях. Проблемы с теми частями Qt, что завязаны на новые возможности Win32 API.