/arch
(ARM64)
ARM64에서 코드 생성을 위한 Arm A-Profile 아키텍처 확장을 지정합니다. 다른 대상 아키텍처에 대한 /arch
자세한 내용은 (x86), /arch
(x64) 및/arch
(ARM)을 참조 /arch
하세요.
구문
/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
필요한 확장 값이 1인 0
Armv8-A 아키텍처 x
를 9
지정합니다. 기본적으로 아키텍처가 지정되지 않은 경우 컴파일러는 이 동작을 사용합니다 /arch:armv8.0
.
/arch:armv9.x
2
필요한 확장 값 0
이 있는 x
Armv9-A 아키텍처를 4
지정합니다. 기본적으로 아키텍처가 지정되지 않은 경우 컴파일러는 이 동작을 사용합니다 /arch:armv8.0
.
설명
Armv8.0-A에서 Armv8.9-A까지 ARM64 확장 및 Armv9.0-A에서 Armv9.4-A까지의 ARM64 확장을 지정할 수 있습니다. 필요에 따라 옵션3에 기능 인수를 추가하여 하나 이상의 아키텍처 기능을 사용하도록 설정합니다. 예를 들어 Armv8.0-A를 대상으로 하고 기능을 FEAT_LSE
사용하도록 설정하려면 옵션이 되도록 기능 인수 lse
를 추가합니다 /arch:armv8.0+lse
. 사용 가능한 기능 및 해당 요구 사항에 대한 자세한 내용은 (ARM64)3을 참조 /feature
하세요.
참고 항목
Visual Studio 버전에 따라 컴파일러는 지정한 확장 수준에 필요한 모든 기능 집합의 지침을 아직 생성하지 못할 수 있습니다. 예를 들어 /arch:armv8.1
내장 함수는 Armv8.1-A 확장 기능FEAT_LSE
과 함께 도입된 적절한 원자성 명령을 사용할 수 *Interlocked*
있지만 컴파일러를 지원하려면 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
네이티브 함수의 코드 생성에만 영향을 줍니다. 컴파일 /arch
하는 데 사용하는 /clr
경우 관리되는 함수의 코드 생성에는 영향을 주지 않습니다.
Visual Studio에서 /arch
컴파일러 옵션을 설정하려면
프로젝트에 대한 속성 페이지 대화 상자를 엽니다. 자세한 내용은 Visual Studio에서 컴파일러 및 빌드 속성 설정을 참조합니다.
구성 속성>C/C++>명령줄 속성 페이지를 선택합니다.
추가 옵션 상자에서 다른 ARM64 확장을 추가
/arch:armv8.0
하거나 바꿉armv8.0
니다. 확인을 선택하여 변경 내용을 저장합니다.
프로그래밍 방식으로 이 컴파일러 옵션을 설정하려면
- AdditionalOptions을(를) 참조하세요.
1 Armv8-A 아키텍처 확장 armv8.9
은 Visual Studio 2022 버전 17.10부터 사용할 수 있습니다.
2 Armv9-A 아키텍처 확장은 Visual Studio 2022 버전 17.10부터 사용할 수 있습니다.
3 아키텍처 기능 사용은 Visual Studio 2022 버전 17.10부터 사용할 수 있습니다.
참고 항목
/arch
(최소 CPU 아키텍처)
미리 정의된 매크로
MSVC 컴파일러 옵션
MSVC 컴파일러 명령줄 구문