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

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

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

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

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

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

1 ответ1

1

Установите Windows 10 SDK и WDK (по крайней мере, Build 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 для поддержки ARMS поддержки 32-битной ARM.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .