Перейти к содержимому

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

0

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

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

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

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

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

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

844 просмотра
Revetahw спросил 8 лет назад
R 398

1 ответ

1
Принятый ответ

Установите 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 · 8 лет назад · 0

@ SörenKuklau компилируется как AnyCPU недостаточно? У меня нет (планирует купить) ноутбук на базе ARM64, чтобы проверить это.

magicandre1981 · 8 лет назад · 0

Да, может быть, но я даже не знаю, существует ли вообще .NET Framework (и если да, то в какой версии?).

Sören Kuklau · 8 лет назад · 0

@ SörenKuklau загрузите скрипт UUP для создания ISO-образа ARM64, откройте Install.wim с 7Zip и посмотрите, включает ли он .net framework. Вы также можете запустить ARM64 в виртуальной машине и протестировать его (но, похоже, быть очень медленным).

magicandre1981 · 8 лет назад · 1

Ооо, я не думал, что смогу подражать. Спасибо!

Sören Kuklau · 8 лет назад · 0

@ SörenKuklau Я скачал последнюю версию Insider как ARM64 и вижу папку .net framework 4, поэтому последний .net 4.7.2 интегрирован.

magicandre1981 · 8 лет назад · 0
magicandre1981 ответил 8 лет назад
M 80 845