Details
-
Bug
-
Resolution: Fixed
-
P1: Critical
-
None
-
6.8.0, 6.9.0 FF
Description
Have Qt 6.9.0 sources on Windows on arm and configure static build (MSVC2022 arm64):
cmake -DFEATURE_msvc_obj_debug_info=OFF -DOPENSSL_ROOT_DIR=C:\openssl_arm64\include\.. -DCMAKE_C_COMPILER=cl.exe -DCMAKE_CXX_COMPILER=cl.exe -DQT_BUILD_TESTS=OFF -DCMAKE_AUTOGEN_VERBOSE=ON -DCMAKE_MESSAGE_LOG_LEVEL=STATUS -DQT_INTERNAL_CALLED_FROM_CONFIGURE:BOOL=TRUE -DQT_BUILD_EXAMPLES=FALSE -DCMAKE_CONFIGURATION_TYPES=RelWithDebInfo;Debug -DINPUT_headersclean=yes -DFEATURE_system_zlib=OFF -DFEATURE_cxx20=ON -DFEATURE_cxx2b=OFF -DINPUT_sql_psql=no -DINPUT_opengl=no -G Ninja Multi-Config -DBUILD_SHARED_LIBS=OFF C:\Users\qt\RTA\src-6.9.0 -DCMAKE_INSTALL_PREFIX:PATH=C:\Users\qt\RTA\src-6.9.0\qtbase -DBUILD_qtwebengine=FALSE
build: cmake --build . --parallel -> passes
PATH:
S:/binPackage/ffmpeg/x64/4.4\bin;C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.41.34120\bin\HostARM64\ARM64;C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\VC\VCPackages;C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\CommonExtensions\Microsoft\TestWindow;C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer;C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Current\bin\Roslyn;C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\;C:\Program Files\Microsoft Visual Studio\2022\Professional\Team Tools\DiagnosticsHub\Collector;C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\\arm64;C:\Program Files (x86)\Windows Kits\10\bin\\arm64;C:\Program Files\Microsoft Visual Studio\2022\Professional\\MSBuild\Current\Bin\arm64;C:\Windows\Microsoft.NET\Framework64\v4.0.30319;C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\;C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\Tools\;c:\utils\gnuwin32\bin;C:\Program Files\dotnet;C:\Utils\gnuwin32\bin;C:\VulkanSDK\1.2.182.0\Bin;C:\openssl_arm64\bin;c:\Utils\sed\bin;C:\Program Files\OpenSSH-ARM64;C:\Program Files\Java\jdk-17\bin;C:\Program Files\Microsoft\jdk-17.0.11.9-hotspot\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\Microsoft SQL Server\150\Tools\Binn\;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\;C:\Utils\sevenzip\;C:\Utils\node-v20.12.2-win-arm64;C:\Utils\Ninja;C:\Program Files\Git\cmd;C:\Program Files\Go\bin;C:\CMake\bin;C:\Program Files\dotnet\;C:\Users\qt\AppData\Local\Microsoft\WindowsApps;C:\Users\qt\go\bin;C:\Users\qt\.dotnet\tools;C:\Utils\Jom;C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin;C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja
Copy randomly picked quick example outside of the source directory:
C:\Users\qt\RTA\src-6.9.0\qtdeclarative\examples\quick\quickwidgets to
C:\Users\qt\RTA\src-6.9.0\tmp\quickwidget
Configure example:
C:\Users\qt\RTA\src-6.9.0\qtbase\bin\qt-cmake -S C:\Users\qt\RTA\tmp\quickwidget -B C:\Users\qt\RTA\tmp\quickwidget\bld_arm64 -GNinja
and build: cmake --build . --parallel
-> fails:
[1/19] Copying rotatingsquare.qml to C:/Users/qt/RTA/tmp/quickwidget/bld_arm64/QuickWidgetExample/rotatingsquare.qml [2/19] Automatic MOC and UIC for target quickwidget [3/19] Running AUTOMOC file extraction for target quickwidget [4/19] Running rcc for resource qmake_QuickWidgetExample_copy [5/19] Running rcc for resource qmake_QuickWidgetExample [6/19] Running rcc for resource quickwidget_raw_qml_0 [7/19] Generating .rcc/qmlcache/quickwidget_qmlcache_loader.cpp [8/19] Running moc --collect-json for target quickwidget [9/19] Automatic QML type registration for target quickwidget [10/19] Generating .rcc/qmlcache/quickwidget_rotatingsquare_qml.cpp, .rcc/qmlcache/quickwidget_rotatingsquare_qml.cpp.aotstats [11/19] Building CXX object CMakeFiles\quickwidget.dir\quickwidget_autogen\mocs_compilation.cpp.obj [12/19] Building CXX object CMakeFiles\quickwidget.dir\bld_arm64\.qt\rcc\qrc_qmake_QuickWidgetExample_copy.cpp.obj [13/19] Building CXX object CMakeFiles\quickwidget.dir\bld_arm64\.qt\rcc\qrc_quickwidget_raw_qml_0.cpp.obj [14/19] Building CXX object CMakeFiles\quickwidget.dir\bld_arm64\.qt\rcc\qrc_qmake_QuickWidgetExample.cpp.obj [15/19] Building CXX object CMakeFiles\quickwidget.dir\quickwidget_qmltyperegistrations.cpp.obj [16/19] Building CXX object CMakeFiles\quickwidget.dir\bld_arm64\.rcc\qmlcache\quickwidget_rotatingsquare_qml.cpp.obj [17/19] Building CXX object CMakeFiles\quickwidget.dir\bld_arm64\.rcc\qmlcache\quickwidget_qmlcache_loader.cpp.obj [18/19] Building CXX object CMakeFiles\quickwidget.dir\main.cpp.obj [19/19] Linking CXX executable quickwidget.exe FAILED: quickwidget.exe (Screenshot taken from the desktop is invalid) C:\Windows\system32\cmd.exe /C "cd . && C:\CMake\bin\cmake.exe -E vs_link_exe --intdir=CMakeFiles\quickwidget.dir --rc=C:\PROGRA~2\WI3CF2~1\10\bin\100226~1.0\arm64\rc.exe --mt=C:\PROGRA~2\WI3CF2~1\10\bin\100226~1.0\arm64\mt.exe --manifests -- C:\PROGRA~1\MICROS~1\2022\PROFES~1\VC\Tools\MSVC\1441~1.341\bin\HOSTAR~1\arm64\link.exe /nologo @CMakeFiles\quickwidget.rsp /out:quickwidget.exe /implib:quickwidget.lib /pdb:quickwidget.pdb /version:0.0 /machine:ARM64 /debug /INCREMENTAL /subsystem:windows && cd ." LINK Pass 1: command "C:\PROGRA~1\MICROS~1\2022\PROFES~1\VC\Tools\MSVC\1441~1.341\bin\HOSTAR~1\arm64\link.exe /nologo @CMakeFiles\quickwidget.rsp /out:quickwidget.exe /implib:quickwidget.lib /pdb:quickwidget.pdb /version:0.0 /machine:ARM64 /debug /INCREMENTAL /subsystem:windows /MANIFEST /MANIFESTFILE:CMakeFiles\quickwidget.dir/intermediate.manifest CMakeFiles\quickwidget.dir/manifest.res" failed (exit code 1120) with the following output: main.cpp.obj : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in QGifPlugin_init.cpp.obj main.cpp.obj : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in QGifPlugin_init.cpp.obj quickwidget_qmltyperegistrations.cpp.obj : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in QGifPlugin_init.cpp.obj quickwidget_qmltyperegistrations.cpp.obj : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in QGifPlugin_init.cpp.obj quickwidget_qmlcache_loader.cpp.obj : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in QGifPlugin_init.cpp.obj quickwidget_qmlcache_loader.cpp.obj : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in QGifPlugin_init.cpp.obj quickwidget_rotatingsquare_qml.cpp.obj : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in QGifPlugin_init.cpp.obj quickwidget_rotatingsquare_qml.cpp.obj : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in QGifPlugin_init.cpp.obj Creating library quickwidget.lib and object quickwidget.exp LINK : warning LNK4098: defaultlib 'MSVCRTD' conflicts with use of other libs; use /NODEFAULTLIB:library main.cpp.obj : error LNK2019: unresolved external symbol __imp__invalid_parameter referenced in function "void __cdecl std::_Adl_verify_range<class QQmlError *,class QQmlError *>(class QQmlError * const &,class QQmlError * const &)" (??$_Adl_verify_range@PEAVQQmlError@@PEAV1@@std@@YAXAEBQEAVQQmlError@@0@Z) quickwidget_qmlcache_loader.cpp.obj : error LNK2001: unresolved external symbol __imp__invalid_parameter quickwidget_rotatingsquare_qml.cpp.obj : error LNK2001: unresolved external symbol __imp__invalid_parameter main.cpp.obj : error LNK2019: unresolved external symbol __imp__calloc_dbg referenced in function "char * __cdecl std::_Maklocstr<char>(char const *,char *,struct _Cvtvec const &)" (??$_Maklocstr@D@std@@YAPEADPEBDPEADAEBU_Cvtvec@@@Z) quickwidget_qmlcache_loader.cpp.obj : error LNK2001: unresolved external symbol __imp__calloc_dbg main.cpp.obj : error LNK2019: unresolved external symbol __imp__CrtDbgReport referenced in function "void __cdecl std::_Adl_verify_range<class QQmlError *,class QQmlError *>(class QQmlError * const &,class QQmlError * const &)" (??$_Adl_verify_range@PEAVQQmlError@@PEAV1@@std@@YAXAEBQEAVQQmlError@@0@Z) quickwidget_qmlcache_loader.cpp.obj : error LNK2001: unresolved external symbol __imp__CrtDbgReport quickwidget_rotatingsquare_qml.cpp.obj : error LNK2001: unresolved external symbol __imp__CrtDbgReport quickwidget.exe : fatal error LNK1120: 3 unresolved externals ninja: build stopped: subcommand failed.
If the Qt binaries are compiled dynamically as insource, shadow or namespace build the example build, executed with same steps, passes.
Same static build + example build on MSVC2022 x64 and MinGW targets works fine.