/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
9
1. По умолчанию компилятор использует /arch:armv8.0
поведение, если архитектура не указана.
/arch:armv9.x
2
Указывает архитектуру 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_LSE
Armv8.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
Откройте диалоговое окно Страницы свойств проекта. Подробнее см. в статье Настройка компилятора C++ и свойств сборки в Visual Studio.
Перейдите на страницу свойств Свойства конфигурации>C/C++>Командная строка.
В поле "Дополнительные параметры" добавьте
/arch:armv8.0
или заменитеarmv8.0
другое расширение ARM64. Нажмите ОК, чтобы сохранить внесенные изменения.
Установка данного параметра компилятора программным способом
- См. раздел AdditionalOptions.
Расширение 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