Поделиться через


/arch (ARM64)

Задает расширение архитектуры Arm A-Profile для создания кода в ARM64. Дополнительные сведения о других целевых архитектурах см. в /arch статьях /arch (x86), (x64)/arch и /arch (ARM).

Синтаксис

/arch:<armv8.0|armv8.1|armv8.2|armv8.3|armv8.4|armv8.5|armv8.6|armv8.7|armv8.8|armv8.9>[+функция]
/arch:<armv9.0|armv9.1|armv9.2|armv9.3|armv9.4>[+функция]

Аргументы

/arch:armv8.x
Задает архитектуру Armv8-A, где x требуется значение расширения от0 91. По умолчанию компилятор использует /arch:armv8.0 поведение, если архитектура не указана.

/arch:armv9.x2
Указывает архитектуру Armv9-A, где x является обязательным значением расширения из 0 4. По умолчанию компилятор использует /arch:armv8.0 поведение, если архитектура не указана.

Замечания

Расширение ARM64 можно указать из Armv8.0-A через Armv8.9-A и Armv9.0-A через Armv9.4-A. При необходимости включите одну или несколько функций архитектуры, добавив аргумент функции к варианту3. Например, для целевого объекта Armv8.0-A и включения функции FEAT_LSEдобавьте аргумент lse функции, чтобы этот параметр стал /arch:armv8.0+lse. Дополнительные сведения о доступных функциях и их требованиях см. в статье (ARM64)3./feature

Примечание.

В зависимости от версии Visual Studio компилятор может еще не создавать инструкции из всех наборов компонентов, необходимых для указанного уровня расширения. Например, /arch:armv8.1 встроенные *Interlocked* функции могут использовать соответствующую атомарную инструкцию, представленную функцией расширения FEAT_LSEArmv8.1-A, но для поддержки компилятора требуется Visual Studio 2022 версии 17.2 или более поздней.

Макрос _M_ARM64 определяется по умолчанию при компиляции для целевого объекта ARM64. Дополнительные сведения см. в разделе "Предопределенные макросы"\

Макрос __ARM_ARCH определен для /arch:ARMv8.0 и выше. Он указывает уровень расширения архитектуры ARM, на который предназначен компилятор. Дополнительные сведения см. в разделе "Предопределенные макросы".

#if __ARM_ARCH >= 802
    // code that requires ARMv8.2...
#endif

/arch влияет только на создание кода для собственных функций. /clr При компиляции /arch не влияет на создание кода для управляемых функций.

Установка параметра компилятора /arch в Visual Studio

  1. Откройте диалоговое окно Страницы свойств проекта. Подробнее см. в статье Настройка компилятора C++ и свойств сборки в Visual Studio.

  2. Перейдите на страницу свойств Свойства конфигурации>C/C++>Командная строка.

  3. В поле "Дополнительные параметры" добавьте /arch:armv8.0 или замените armv8.0 другое расширение ARM64. Нажмите ОК, чтобы сохранить внесенные изменения.

Установка данного параметра компилятора программным способом

Расширение armv8.9 архитектуры Armv8-A доступно начиная с Visual Studio 2022 версии 17.10.
Расширения архитектуры Armv9-A доступны начиная с Visual Studio 2022 версии 17.10.
Включение функций архитектуры 3 доступно начиная с Visual Studio 2022 версии 17.10.

См. также

/arch (Минимальная архитектура ЦП)
Предустановленные макросы
Параметры компилятора MSVC
Синтаксис командной строки компилятора MSVC