Компиляция для ARM Windows

673
Revetahw

Microsoft выпустила полную версию Windows 10 для архитектуры ARM для работы на процессорах Snapdragon.

Он включает в себя слой эмуляции для запуска двоичных файлов x86 из коробки. Однако я ожидаю, что эта эмуляция снизит производительность по сравнению с запущенным программным обеспечением на архитектуре, для которой оно было скомпилировано.

Поэтому мне интересно, будет ли для пользователей хорошей идеей самим компилировать программное обеспечение для ARM и запускать его напрямую без эмуляции. Цель этого состоит в том, чтобы обойти уровень эмуляции, таким образом увеличивая производительность.

Это будет программное обеспечение, которое многие люди регулярно используют и имеют исходный код, например, Chromium, Firefox, Libre Office, GIMP, Audacity, Open Shot, VLC Player и т. Д.

Это выполнимо? Позволит ли Windows 10 для ARM установить скомпилированные двоичные файлы ARM?

Как можно собрать программное обеспечение Windows для ARM?

0
Простой поиск нашел бы [Настройка Visual C ++ для процессоров ARM] (https://docs.microsoft.com/en-us/cpp/build/configuring-programs-for-arm-processors-visual-cpp) DavidPostill 6 лет назад 0
@DavidPostill Я исследовал это прежде, чем спросить, и я не нашел это. Revetahw 6 лет назад 0
Это 3-й результат (для меня) для "компиляции программного обеспечения Windows для ARM" DavidPostill 6 лет назад 0
@ DavidPostill Полагаю, отсутствие знаний по этому вопросу заставило меня не увидеть актуальность этого результата. Revetahw 6 лет назад 0
«Позволит ли Windows 10 для ARM устанавливать скомпилированные двоичные файлы ARM?» Да, приложения UWP. Ramhound 6 лет назад 0

1 ответ на вопрос

1
magicandre1981

Установите Windows 10 SDK и WDK (по крайней мере, сборка 16299), чтобы получить компилятор ARM для настольных приложений.

Откройте конфигурацию проекта и создайте конфигурацию ARM (64):

Если вы попытаетесь скомпилировать его, вы получите ошибку, что ARM64 не поддерживается для рабочего стола:

Чтобы это исправить, выгрузите проект, откройте его в редакторе и добавьте строку <WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support>в запись отладки и выпуска для ARM64:

 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration"> <ConfigurationType>Application</ConfigurationType> <UseDebugLibraries>true</UseDebugLibraries> <PlatformToolset>v141</PlatformToolset> <CharacterSet>Unicode</CharacterSet> <WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration"> <ConfigurationType>Application</ConfigurationType> <UseDebugLibraries>false</UseDebugLibraries> <PlatformToolset>v141</PlatformToolset> <WholeProgramOptimization>true</WholeProgramOptimization> <CharacterSet>Unicode</CharacterSet> <WindowsSDKDesktopARM64Support>true</WindowsSDKDesktopARM64Support> </PropertyGroup> 

и WindowsSDKDesktopARMSupportдля 32Bit ARM.

Сохраните изменения, загрузите проект снова, и теперь компиляция работает нормально:

Есть ли эквивалент для разработки настольных компьютеров .NET? .NET Framework поставляется на Windows 10 на ARM вообще? https://docs.microsoft.com/en-us/dotnet/framework/get-started/system-requirements, кажется, предлагает нет. Sören Kuklau 5 лет назад 0
@ SörenKuklau компилируется как AnyCPU недостаточно? У меня нет (планирует купить) ноутбук на базе ARM64, чтобы проверить это. magicandre1981 5 лет назад 0
Да, может быть, но я даже не знаю, существует ли вообще .NET Framework (и если да, то в какой версии?). Sören Kuklau 5 лет назад 0
@ SörenKuklau [загрузите скрипт UUP для создания ISO-образа ARM64] (https://uup.rg-adguard.net/), откройте Install.wim с 7Zip и посмотрите, включает ли он .net framework. Вы также можете запустить [ARM64 в виртуальной машине] (https://withinrafael.com/2018/02/11/boot-arm64-builds-of-windows-10-in-qemu/) и протестировать его (но, похоже, быть очень медленным). magicandre1981 5 лет назад 1
Ооо, я не думал, что смогу подражать. Спасибо! Sören Kuklau 5 лет назад 0
@ SörenKuklau Я скачал последнюю версию Insider как ARM64 и вижу папку .net framework 4, поэтому последний .net 4.7.2 интегрирован. magicandre1981 5 лет назад 0

Похожие вопросы