microsoft / vcpkg

C++ Library Manager for Windows, Linux, and MacOS
MIT License
22.91k stars 6.33k forks source link

[qt5] Cross-compilation for ARM64 fails #16922

Open davidebeatrici opened 3 years ago

davidebeatrici commented 3 years ago
Microsoft (R) Program Maintenance Utility Version 14.28.29913.0
Copyright (C) Microsoft Corporation.  All rights reserved.

This version of C:\vcpkg\buildtrees\qt5-base\arm64-windows-static-md-dbg\bin\qmake.exe is not compatible with the version of Windows you're running. Check your computer's system information and then contact the software publisher.

From https://code.qt.io/cgit/qt/qtbase.git/tree/cmake/README.md:

Compiling for a target architecture that's different than the host requires one build of Qt for the host. This "host build" is needed because the process of building Qt involves the compilation of intermediate code generator tools, that in turn are called to produce source code that needs to be compiled into the final libraries. These tools are built using Qt itself and they need to run on the machine you're building on, regardless of the architecure you are targeting.

Build Qt regularly for your host system and install it into a directory of your choice using the CMAKE_INSTALL_PREFIX variable. You are free to disable the build of tests and examples by passing -DBUILD_EXAMPLES=OFF and -DBUILD_TESTING=OFF.

With this installation of Qt in place, which contains all tools needed, we can proceed to create a new build of Qt that is cross-compiled to the target architecture of choice. You may proceed by setting up your environment. The CMake wiki has further information how to do that at

https://gitlab.kitware.com/cmake/community/wikis/doc/cmake/CrossCompiling

Yocto based device SDKs come with an environment setup script that needs to be sourced in your shell and takes care of setting up environment variables and a cmake alias with a toolchain file, so that you can call cmake as you always do.

In order to make sure that Qt picks up the code generator tools from the host build, you need to pass an extra parameter to cmake:

-DQT_HOST_PATH=/path/to/your/host_build

The specified path needs to point to a directory that contains an installed host build of Qt.

Neumann-A commented 3 years ago

qt5-base is not yet setup for cross builds since host triplets were just recently added. You can try setting VCPKG_QT_TARGET_MKSPEC and VCPKG_QT_HOST_TOOLS_ROOT. To appropiate values but don't expect it to be successful.

davidebeatrici commented 3 years ago
-- Figuring out qt target mkspec. Target arch arm64
-- Figuring out arm64
-- Target mkspec set to: win32-arm64-msvc2017
-- Host mkspec not set. Qt's own buildsystem will try to figure out the host system
Trying source 2 (type inline) of library icu ...
+ cd /d C:\vcpkg\buildtrees\qt5-base\arm64-windows-static-md-dbg\config.tests\icu && C:\vcpkg\installed\x64-windows-static-md\tools\qt5\bin\qmake.exe "CONFIG -= qt debug_and_release app_bundle lib_bundle" "CONFIG += static warn_off console single_arch" "QMAKE_LIBDIR += C:/vcpkg/installed/x64-windows-static-md/lib C:/vcpkg/installed/arm64-windows-static-md/debug/lib C:/vcpkg/installed/arm64-windows-static-md/debug/lib/manual-link" "INCLUDEPATH += C:/vcpkg/installed/x64-windows-static-md/include C:/vcpkg/installed/arm64-windows-static-md/include" "QMAKE_LIBS_PRIVATE+=C:/vcpkg/installed/arm64-windows-static-md/debug/lib/bz2d.lib" "QMAKE_LIBS_PRIVATE+=C:/vcpkg/installed/arm64-windows-static-md/debug/lib/libpng16d.lib" "QMAKE_LIBS_PRIVATE+=C:/vcpkg/installed/arm64-windows-static-md/debug/lib/icuind.lib C:/vcpkg/installed/arm64-windows-static-md/debug/lib/icutud.lib  C:/vcpkg/installed/arm64-windows-static-md/debug/lib/icuucd.lib C:/vcpkg/installed/arm64-windows-static-md/debug/lib/icuiod.lib C:/vcpkg/installed/arm64-windows-static-md/debug/lib/icudtd.lib Advapi32.lib" "QMAKE_LIBS_PRIVATE+=C:/vcpkg/installed/arm64-windows-static-md/debug/lib/zstd_staticd.lib" "QMAKE_USE += icu" "QMAKE_LIBS_ICU = C:/vcpkg/installed/arm64-windows-static-md/debug/lib/icuind.lib C:/vcpkg/installed/arm64-windows-static-md/debug/lib/icutud.lib C:/vcpkg/installed/arm64-windows-static-md/debug/lib/icuucd.lib C:/vcpkg/installed/arm64-windows-static-md/debug/lib/icuiod.lib C:/vcpkg/installed/arm64-windows-static-md/debug/lib/icudtd.lib Advapi32.lib" C:/vcpkg/buildtrees/qt5-base/arm64-windows-static-md-dbg/config.tests/icu
+ cd /d C:\vcpkg\buildtrees\qt5-base\arm64-windows-static-md-dbg\config.tests\icu && set MAKEFLAGS=& nmake clean && set MAKEFLAGS=& nmake
> Microsoft (R) Program Maintenance Utility Version 14.28.29913.0
> Copyright (C) Microsoft Corporation.  All rights reserved.
>   del main.obj
> Microsoft (R) Program Maintenance Utility Version 14.28.29913.0
> Copyright (C) Microsoft Corporation.  All rights reserved.
>   cl -c -nologo -Zc:wchar_t -FS -Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -Zc:referenceBinding -Zc:__cplusplus -O2 -MD -W0 -EHsc -DUNICODE -D_UNICODE -DWIN32 -D_ENABLE_EXTENDED_ALIGNED_STORAGE -DNDEBUG -I. -IC:\vcpkg\installed\x64-windows-static-md\include -IC:\vcpkg\installed\arm64-windows-static-md\include -IC:\vcpkg\installed\x64-windows-static-md\tools\qt5\mkspecs\win32-msvc -Fo @C:\Users\User\AppData\Local\Temp\nm6473.tmp
> main.cpp
>   link /NOLOGO /DYNAMICBASE /NXCOMPAT /OPT:REF /INCREMENTAL:NO /SUBSYSTEM:CONSOLE "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /MANIFEST:embed /OUT:icu.exe @C:\Users\User\AppData\Local\Temp\nm658D.tmp
> icuind.lib(ucol_res.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuind.lib(ucol_res.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuind.lib(ucol.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuind.lib(ucol.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuind.lib(coll.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuind.lib(coll.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuind.lib(collationdatareader.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuind.lib(collationdatareader.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuind.lib(collationroot.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuind.lib(collationroot.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuind.lib(collationtailoring.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuind.lib(collationtailoring.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuind.lib(ucln_in.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuind.lib(ucln_in.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuind.lib(rulebasedcollator.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuind.lib(rulebasedcollator.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuind.lib(collationdatawriter.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuind.lib(collationdatawriter.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuind.lib(collationdata.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuind.lib(collationdata.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuind.lib(collationfastlatin.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuind.lib(collationfastlatin.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuind.lib(collationsettings.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuind.lib(collationsettings.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuind.lib(coleitr.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuind.lib(coleitr.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuind.lib(sortkey.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuind.lib(sortkey.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuind.lib(bocsu.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuind.lib(bocsu.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuind.lib(collationcompare.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuind.lib(collationcompare.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuind.lib(collationiterator.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuind.lib(collationiterator.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuind.lib(collationkeys.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuind.lib(collationkeys.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuind.lib(collationsets.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuind.lib(collationsets.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuind.lib(uitercollationiterator.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuind.lib(uitercollationiterator.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuind.lib(utf16collationiterator.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuind.lib(utf16collationiterator.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuind.lib(utf8collationiterator.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuind.lib(utf8collationiterator.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(uenum.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(uenum.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(ulist.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(ulist.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(uobject.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(uobject.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(ustrenum.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(ustrenum.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(unistr.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(unistr.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(uinvchar.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(uinvchar.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(locid.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(locid.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(uresbund.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(uresbund.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(cmemory.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(cmemory.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(charstr.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(charstr.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(cstring.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(cstring.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(umutex.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(umutex.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(sharedobject.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(sharedobject.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(uresdata.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(uresdata.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(resource.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(resource.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(ustring.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(ustring.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(unifiedcache.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(unifiedcache.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(uniset.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(uniset.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(uiter.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(uiter.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(propname.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(propname.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(locdispnames.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(locdispnames.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(uhash.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(uhash.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(servnotf.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(servnotf.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(serv.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(serv.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(locutil.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(locutil.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(servlkf.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(servlkf.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(servrbf.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(servrbf.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(servls.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(servls.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(uset.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(uset.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(utrie2.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(utrie2.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(udata.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(udata.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(udatamem.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(udatamem.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(normalizer2.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(normalizer2.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(ucln_cmn.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(ucln_cmn.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(uloc.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(uloc.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(bytestream.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(bytestream.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(usetiter.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(usetiter.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(normalizer2impl.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(normalizer2impl.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(uvectr64.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(uvectr64.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(uvectr32.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(uvectr32.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(ucharstrie.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(ucharstrie.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(ucharstrieiterator.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(ucharstrieiterator.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(ustrtrns.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(ustrtrns.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(putil.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(putil.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(udataswp.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(udataswp.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(stringpiece.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(stringpiece.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(unistr_cnv.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(unistr_cnv.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(bytesinkutil.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(bytesinkutil.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(uloc_tag.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(uloc_tag.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(loclikely.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(loclikely.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(uarrsort.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(uarrsort.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(ucol_swp.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(ucol_swp.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(patternprops.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(patternprops.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(util.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(util.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(uvector.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(uvector.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(bmpset.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(bmpset.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(unisetspan.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(unisetspan.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(bytestrie.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(bytestrie.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(locresdata.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(locresdata.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(uhash_us.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(uhash_us.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(resbund.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(resbund.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(servlk.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(servlk.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(servslkf.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(servslkf.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(umapfile.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(umapfile.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(ucmndata.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(ucmndata.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(edits.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(edits.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(ucptrie.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(ucptrie.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(utrace.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(utrace.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(uloc_keytype.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(uloc_keytype.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(locmap.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(locmap.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(umutablecptrie.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(umutablecptrie.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(utrie_swap.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(utrie_swap.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(wintz.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(wintz.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(ucnv.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(ucnv.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(ucnv_bld.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(ucnv_bld.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(ustr_cnv.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(ustr_cnv.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(uscript_props.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(uscript_props.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(ustrfmt.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(ustrfmt.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(ucnv_err.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(ucnv_err.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(ucnv_io.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(ucnv_io.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(ucnvmbcs.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(ucnvmbcs.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(ucnvlat1.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(ucnvlat1.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(ucnv_u8.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(ucnv_u8.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(ucnv_u16.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(ucnv_u16.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(ucnv_u32.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(ucnv_u32.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(ucnv2022.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(ucnv2022.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(ucnv_lmb.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(ucnv_lmb.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(ucnvhz.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(ucnvhz.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(ucnvisci.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(ucnvisci.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(ucnvscsu.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(ucnvscsu.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(ucnv_u7.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(ucnv_u7.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(ucnvbocu.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(ucnvbocu.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(ucnv_ct.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(ucnv_ct.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(ucnv_cb.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(ucnv_cb.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(ucnv_cnv.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(ucnv_cnv.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
> icuucd.lib(ucnv_ext.ao) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in main.obj
> icuucd.lib(ucnv_ext.ao) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MD_DynamicRelease' in main.obj
>    Creating library icu.lib and object icu.exp
> LINK : warning LNK4098: defaultlib 'MSVCRTD' conflicts with use of other libs; use /NODEFAULTLIB:library
> icuucd.lib(ucnvmbcs.ao) : error LNK2001: unresolved external symbol __imp__invalid_parameter
> icuucd.lib(utrie_swap.ao) : error LNK2001: unresolved external symbol __imp__invalid_parameter
> icuucd.lib(ucnv_bld.ao) : error LNK2001: unresolved external symbol __imp__invalid_parameter
> icuucd.lib(ustr_cnv.ao) : error LNK2001: unresolved external symbol __imp__invalid_parameter
> icuucd.lib(ucnv_io.ao) : error LNK2001: unresolved external symbol __imp__invalid_parameter
> icuucd.lib(resbund.ao) : error LNK2001: unresolved external symbol __imp__invalid_parameter
> icuucd.lib(servlk.ao) : error LNK2001: unresolved external symbol __imp__invalid_parameter
> icuucd.lib(servslkf.ao) : error LNK2001: unresolved external symbol __imp__invalid_parameter
> icuucd.lib(uloc_keytype.ao) : error LNK2001: unresolved external symbol __imp__invalid_parameter
> icuucd.lib(uloc.ao) : error LNK2001: unresolved external symbol __imp__invalid_parameter
> icuucd.lib(normalizer2impl.ao) : error LNK2001: unresolved external symbol __imp__invalid_parameter
> icuucd.lib(putil.ao) : error LNK2001: unresolved external symbol __imp__invalid_parameter
> icuucd.lib(ucol_swp.ao) : error LNK2001: unresolved external symbol __imp__invalid_parameter
> icuucd.lib(utrie2.ao) : error LNK2001: unresolved external symbol __imp__invalid_parameter
> icuucd.lib(udata.ao) : error LNK2001: unresolved external symbol __imp__invalid_parameter
> icuucd.lib(normalizer2.ao) : error LNK2001: unresolved external symbol __imp__invalid_parameter
> icuucd.lib(ucln_cmn.ao) : error LNK2001: unresolved external symbol __imp__invalid_parameter
> icuucd.lib(locutil.ao) : error LNK2001: unresolved external symbol __imp__invalid_parameter
> icuucd.lib(servlkf.ao) : error LNK2001: unresolved external symbol __imp__invalid_parameter
> icuucd.lib(servrbf.ao) : error LNK2001: unresolved external symbol __imp__invalid_parameter
> icuucd.lib(servls.ao) : error LNK2001: unresolved external symbol __imp__invalid_parameter
> icuucd.lib(unifiedcache.ao) : error LNK2001: unresolved external symbol __imp__invalid_parameter
> icuucd.lib(propname.ao) : error LNK2001: unresolved external symbol __imp__invalid_parameter
> icuucd.lib(servnotf.ao) : error LNK2001: unresolved external symbol __imp__invalid_parameter
> icuucd.lib(serv.ao) : error LNK2001: unresolved external symbol __imp__invalid_parameter
> icuucd.lib(locid.ao) : error LNK2001: unresolved external symbol __imp__invalid_parameter
> icuucd.lib(uresbund.ao) : error LNK2001: unresolved external symbol __imp__invalid_parameter
> icuucd.lib(umutex.ao) : error LNK2001: unresolved external symbol __imp__invalid_parameter
> icuucd.lib(sharedobject.ao) : error LNK2001: unresolved external symbol __imp__invalid_parameter
> icuind.lib(uitercollationiterator.ao) : error LNK2001: unresolved external symbol __imp__invalid_parameter
> icuind.lib(utf16collationiterator.ao) : error LNK2001: unresolved external symbol __imp__invalid_parameter
> icuind.lib(utf8collationiterator.ao) : error LNK2001: unresolved external symbol __imp__invalid_parameter
> icuucd.lib(unistr.ao) : error LNK2001: unresolved external symbol __imp__invalid_parameter
> icuind.lib(collationcompare.ao) : error LNK2001: unresolved external symbol __imp__invalid_parameter
> icuind.lib(collationiterator.ao) : error LNK2001: unresolved external symbol __imp__invalid_parameter
> icuind.lib(collationkeys.ao) : error LNK2001: unresolved external symbol __imp__invalid_parameter
> icuind.lib(collationsets.ao) : error LNK2001: unresolved external symbol __imp__invalid_parameter
> icuind.lib(collationdata.ao) : error LNK2001: unresolved external symbol __imp__invalid_parameter
> icuind.lib(collationfastlatin.ao) : error LNK2001: unresolved external symbol __imp__invalid_parameter
> icuind.lib(collationsettings.ao) : error LNK2001: unresolved external symbol __imp__invalid_parameter
> icuind.lib(coleitr.ao) : error LNK2001: unresolved external symbol __imp__invalid_parameter
> icuind.lib(collationtailoring.ao) : error LNK2001: unresolved external symbol __imp__invalid_parameter
> icuind.lib(ucln_in.ao) : error LNK2001: unresolved external symbol __imp__invalid_parameter
> icuind.lib(rulebasedcollator.ao) : error LNK2001: unresolved external symbol __imp__invalid_parameter
> icuind.lib(collationdatawriter.ao) : error LNK2001: unresolved external symbol __imp__invalid_parameter
> icuind.lib(ucol_res.ao) : error LNK2001: unresolved external symbol __imp__invalid_parameter
> icuind.lib(coll.ao) : error LNK2001: unresolved external symbol __imp__invalid_parameter
> icuind.lib(collationdatareader.ao) : error LNK2001: unresolved external symbol __imp__invalid_parameter
> icuind.lib(collationroot.ao) : error LNK2001: unresolved external symbol __imp__invalid_parameter
> icuucd.lib(ucnvmbcs.ao) : error LNK2001: unresolved external symbol __imp__CrtDbgReport
> icuucd.lib(utrie_swap.ao) : error LNK2001: unresolved external symbol __imp__CrtDbgReport
> icuucd.lib(ucnv_bld.ao) : error LNK2001: unresolved external symbol __imp__CrtDbgReport
> icuucd.lib(ustr_cnv.ao) : error LNK2001: unresolved external symbol __imp__CrtDbgReport
> icuucd.lib(ucnv_io.ao) : error LNK2001: unresolved external symbol __imp__CrtDbgReport
> icuucd.lib(resbund.ao) : error LNK2001: unresolved external symbol __imp__CrtDbgReport
> icuucd.lib(servlk.ao) : error LNK2001: unresolved external symbol __imp__CrtDbgReport
> icuucd.lib(servslkf.ao) : error LNK2001: unresolved external symbol __imp__CrtDbgReport
> icuucd.lib(uloc_keytype.ao) : error LNK2001: unresolved external symbol __imp__CrtDbgReport
> icuucd.lib(uloc.ao) : error LNK2001: unresolved external symbol __imp__CrtDbgReport
> icuucd.lib(normalizer2impl.ao) : error LNK2001: unresolved external symbol __imp__CrtDbgReport
> icuucd.lib(putil.ao) : error LNK2001: unresolved external symbol __imp__CrtDbgReport
> icuucd.lib(ucol_swp.ao) : error LNK2001: unresolved external symbol __imp__CrtDbgReport
> icuucd.lib(utrie2.ao) : error LNK2001: unresolved external symbol __imp__CrtDbgReport
> icuucd.lib(udata.ao) : error LNK2001: unresolved external symbol __imp__CrtDbgReport
> icuucd.lib(normalizer2.ao) : error LNK2001: unresolved external symbol __imp__CrtDbgReport
> icuucd.lib(ucln_cmn.ao) : error LNK2001: unresolved external symbol __imp__CrtDbgReport
> icuucd.lib(locutil.ao) : error LNK2001: unresolved external symbol __imp__CrtDbgReport
> icuucd.lib(servlkf.ao) : error LNK2001: unresolved external symbol __imp__CrtDbgReport
> icuucd.lib(servrbf.ao) : error LNK2001: unresolved external symbol __imp__CrtDbgReport
> icuucd.lib(servls.ao) : error LNK2001: unresolved external symbol __imp__CrtDbgReport
> icuucd.lib(unifiedcache.ao) : error LNK2001: unresolved external symbol __imp__CrtDbgReport
> icuucd.lib(propname.ao) : error LNK2001: unresolved external symbol __imp__CrtDbgReport
> icuucd.lib(servnotf.ao) : error LNK2001: unresolved external symbol __imp__CrtDbgReport
> icuucd.lib(serv.ao) : error LNK2001: unresolved external symbol __imp__CrtDbgReport
> icuucd.lib(locid.ao) : error LNK2001: unresolved external symbol __imp__CrtDbgReport
> icuucd.lib(uresbund.ao) : error LNK2001: unresolved external symbol __imp__CrtDbgReport
> icuucd.lib(umutex.ao) : error LNK2001: unresolved external symbol __imp__CrtDbgReport
> icuucd.lib(sharedobject.ao) : error LNK2001: unresolved external symbol __imp__CrtDbgReport
> icuind.lib(uitercollationiterator.ao) : error LNK2001: unresolved external symbol __imp__CrtDbgReport
> icuind.lib(utf16collationiterator.ao) : error LNK2001: unresolved external symbol __imp__CrtDbgReport
> icuind.lib(utf8collationiterator.ao) : error LNK2001: unresolved external symbol __imp__CrtDbgReport
> icuucd.lib(unistr.ao) : error LNK2001: unresolved external symbol __imp__CrtDbgReport
> icuind.lib(collationcompare.ao) : error LNK2001: unresolved external symbol __imp__CrtDbgReport
> icuind.lib(collationiterator.ao) : error LNK2001: unresolved external symbol __imp__CrtDbgReport
> icuind.lib(collationkeys.ao) : error LNK2001: unresolved external symbol __imp__CrtDbgReport
> icuind.lib(collationsets.ao) : error LNK2001: unresolved external symbol __imp__CrtDbgReport
> icuind.lib(collationdata.ao) : error LNK2001: unresolved external symbol __imp__CrtDbgReport
> icuind.lib(collationfastlatin.ao) : error LNK2001: unresolved external symbol __imp__CrtDbgReport
> icuind.lib(collationsettings.ao) : error LNK2001: unresolved external symbol __imp__CrtDbgReport
> icuind.lib(coleitr.ao) : error LNK2001: unresolved external symbol __imp__CrtDbgReport
> icuind.lib(collationtailoring.ao) : error LNK2001: unresolved external symbol __imp__CrtDbgReport
> icuind.lib(ucln_in.ao) : error LNK2001: unresolved external symbol __imp__CrtDbgReport
> icuind.lib(rulebasedcollator.ao) : error LNK2001: unresolved external symbol __imp__CrtDbgReport
> icuind.lib(collationdatawriter.ao) : error LNK2001: unresolved external symbol __imp__CrtDbgReport
> icuind.lib(ucol_res.ao) : error LNK2001: unresolved external symbol __imp__CrtDbgReport
> icuind.lib(coll.ao) : error LNK2001: unresolved external symbol __imp__CrtDbgReport
> icuind.lib(collationdatareader.ao) : error LNK2001: unresolved external symbol __imp__CrtDbgReport
> icuind.lib(collationroot.ao) : error LNK2001: unresolved external symbol __imp__CrtDbgReport
> C:\vcpkg\installed\x64-windows-static-md\lib\icuin.lib : warning LNK4272: library machine type 'x64' conflicts with target machine type 'ARM64'
> C:\vcpkg\installed\x64-windows-static-md\lib\icuuc.lib : warning LNK4272: library machine type 'x64' conflicts with target machine type 'ARM64'
> C:\vcpkg\installed\x64-windows-static-md\lib\icudt.lib : warning LNK4272: library machine type 'x64' conflicts with target machine type 'ARM64'
> icu.exe : fatal error LNK1120: 2 unresolved externals
ERROR: Feature 'icu' was enabled, but the pre-condition 'libs.icu' failed.
kafeg commented 2 years ago

Confirm VCPKG_QT_TARGET_MKSPEC and VCPKG_QT_HOST_TOOLS_ROOT doesn't help. I have correct toolchain+rootfs (built with https://github.com/kafeg/dockerpi-toolchain) for RasPi1 / RasPi3 and can build other vcpkg ports but when i trying to build qt5-base it alwayes tries to build for x86_64 and ignores mkspec like linux-aarch64-g++ or similar. Just always configures qt for linux-g++`.

kafeg commented 2 years ago

Finaly i found dirty solution and can cross-compile qt5-base without opengl, fontconfig, harfbuzz, icu. My current solution is enought for me to build cli-utility, but maybe it can be helpful to somebody as start point.

So what i did:

  1. Built cross-toolchain: https://github.com/kafeg/dockerpi-toolchain
  2. Patched vcpkg with this changes: https://github.com/anyshell/vcpkg/commits/anyshell (all mine commits at the top, most important in configure_qt.cmake, portfile.cmake and vcpkg.json)
  3. Called vcpkg install qt5-base:arm-linux

And it works for me. I got armv6/armv7a/arm64 vcpkg libraries set!

@Neumann-A hope it could help in the future investigating.

UPD: Also added there another hack to cross compile for Mac M1 (based on https://github.com/qbittorrent/qBittorrent/wiki/Compilation:-macOS-(x86_64,-arm64,-cross-compilation))

UPD2: Now that branch contains patches to cross-compile qt5-base on: (host -> target) x64-linux -> armv6-linux, armv7a-linux, arm64-linux x64-osx -> arm64-osx (without fontconfig for now, because of https://github.com/microsoft/vcpkg/issues/22498) x64-windows -> arm64-windows

UPD3: I spent a lot of time to try to understand and fix vcpkg_configure_meson.cmake to find a reason why the linkers flags does not contain what I needed from the chainload file. But in the end the best solution to fix build for fontconfig, harfbuzz and othe meson based port is just to create symlink to the lib dir which required by the meson. For e.g.: mkdir -p /opt/raspi-rootfs/arm-linux-gnueabihf; cd /opt/raspi-rootfs/arm-linux-gnueabihf; ln -s /opt/raspi-rootfs/usr/lib/arm-linux-gnueabihf lib. After that meson can find dependencies to link with no need to adjust vcpkg scripts.

daljit97 commented 2 years ago

This is also on my wishlist, adding cross-compilation for ARM64 for Qt 5.15 would be really nice and another small step towards a more mature windows arm64 ecosystem.

kambala-decapitator commented 2 years ago

Qt 5 doesn't require host Qt installation to exist, only Qt 6 does. But currently vcpkg builds both host and target variants which doesn't seem right.

Here's an example how to cross-compile Qt5-base (checked on 5.15.5) x86_64 -> arm64 on a Mac that doesn't require editing any mkspecs:

/PATH/TO/QT_BASE/configure -device-option QMAKE_APPLE_DEVICE_ARCHS=arm64 <other options>

maybe the same would work on Windows.

Qt tools like qmake and moc are built for host and libs are built for target:

> lipo -info lib/libQt5Core.a
Non-fat file: lib/libQt5Core.a is architecture: arm64

> file bin/moc
bin/moc: Mach-O 64-bit executable x86_64
dg0yt commented 2 years ago

Qt 5 doesn't require host Qt installation to exist, only Qt 6 does.

Qt5 in vcpkg simply doesn't work like upstream.

minnyres commented 4 months ago

Is there any progress with this? I found that the configure.bat script in upstream already supports build Qt5 for ARM64:

https://gist.github.com/tycho/3ce679850a03a39d8c174ac05af56214?permalink_comment_id=5068421#gistcomment-5068421

jimwang118 commented 4 months ago

@Neumann-A Could you have any suggestions for cross-compilation of qt5-base under arm64?

Neumann-A commented 4 months ago

Could you have any suggestions for cross-compilation of qt5-base under arm64?

Requires setting it up from the portfile for windows?