다음을 통해 공유


/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
필요한 확장 값이 10 Armv8-A 아키텍처 x9지정합니다. 기본적으로 아키텍처가 지정되지 않은 경우 컴파일러는 이 동작을 사용합니다 /arch:armv8.0 .

/arch:armv9.x2
필요한 확장 값 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 컴파일러 옵션을 설정하려면

  1. 프로젝트에 대한 속성 페이지 대화 상자를 엽니다. 자세한 내용은 Visual Studio에서 컴파일러 및 빌드 속성 설정을 참조합니다.

  2. 구성 속성>C/C++>명령줄 속성 페이지를 선택합니다.

  3. 추가 옵션 상자에서 다른 ARM64 확장을 추가 /arch:armv8.0 하거나 바꿉 armv8.0 니다. 확인을 선택하여 변경 내용을 저장합니다.

프로그래밍 방식으로 이 컴파일러 옵션을 설정하려면

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 컴파일러 명령줄 구문