Udostępnij za pośrednictwem


/arch (ARM64)

Określa rozszerzenie architektury Arm A-Profile na potrzeby generowania kodu w usłudze ARM64. Aby uzyskać więcej informacji na temat /arch innych architektur docelowych, zobacz /arch (x86), /arch (x64)i /arch (ARM).

Składnia

/arch:<armv8.0|armv8.1|armv8.2|armv8.3|armv8.4|armv8.5|armv8.6|armv8.7|armv8.8|armv8.9>[+feature]
/arch:<armv9.0|armv9.1|armv9.2|armv9.3|armv9.4>[+feature]

Argumenty

/arch:armv8.x
Określa architekturę Armv8-A, gdzie x jest wymaganą wartością rozszerzenia z 0 do 91. Domyślnie kompilator używa /arch:armv8.0 zachowania, jeśli nie określono żadnej architektury.

/arch:armv9.x2
Określa architekturę Armv9-A, gdzie x jest wymaganą wartością rozszerzenia z 0 do 4. Domyślnie kompilator używa /arch:armv8.0 zachowania, jeśli nie określono żadnej architektury.

Uwagi

Można określić rozszerzenie ARM64 z armv8.0-A do Armv8.9-A i Armv9.0-A do Armv9.4-A. Opcjonalnie włącz co najmniej jedną funkcję architektury, dołączając argument funkcji do opcji3. Na przykład aby kierować do armv8.0-A i włączyć funkcję , dołącz argument lse funkcjiFEAT_LSE, aby opcja stała się ./arch:armv8.0+lse Aby uzyskać więcej informacji na temat dostępnych funkcji i ich wymagań, zobacz (ARM64)3./feature

Uwaga

W zależności od wersji programu Visual Studio kompilator może jeszcze nie generować instrukcji ze wszystkich zestawów funkcji wymaganych przez określony poziom rozszerzenia. Na przykład /arch:armv8.1 umożliwia funkcjom *Interlocked* wewnętrznym korzystanie z odpowiedniej instrukcji niepodzielnej wprowadzonej z funkcją FEAT_LSErozszerzenia Armv8.1-A, ale obsługa kompilatora wymaga programu Visual Studio 2022 w wersji 17.2 lub nowszej.

Makro _M_ARM64 jest definiowane domyślnie podczas kompilowania dla obiektu docelowego ARM64. Aby uzyskać więcej informacji, zobacz Wstępnie zdefiniowane makra\

Makro __ARM_ARCH jest definiowane dla /arch:ARMv8.0 i nowszych. Wskazuje poziom rozszerzenia architektury usługi ARM przeznaczony dla kompilatora. Aby uzyskać więcej informacji, zobacz Wstępnie zdefiniowane makra.

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

/arch Dotyczy tylko generowania kodu dla funkcji natywnych. W przypadku użycia /clr polecenia do kompilowania /arch nie ma wpływu na generowanie kodu dla funkcji zarządzanych.

Aby ustawić opcję kompilatora /arch w programie Visual Studio

  1. Otwórz okno dialogowe Strony właściwości dla projektu. Aby uzyskać więcej informacji, zobacz Set C++ compiler and build properties in Visual Studio (Ustawianie właściwości kompilatora języka C++ i kompilacji w programie Visual Studio).

  2. Wybierz stronę Właściwości>konfiguracji C/C++>Wiersza polecenia.

  3. W polu Dodatkowe opcje dodaj /arch:armv8.0 lub zastąp innym armv8.0 rozszerzeniem ARM64. Wybierz przycisk OK , aby zapisać zmiany.

Aby programowo ustawić tę opcję kompilatora

1 Rozszerzenie armv8.9 architektury Armv8-A jest dostępne od wersji 17.10 programu Visual Studio 2022.
2 Rozszerzenia architektury Armv9-A są dostępne od wersji 17.10 programu Visual Studio 2022.
3 Włączanie funkcji architektury jest dostępne od wersji 17.10 programu Visual Studio 2022.

Zobacz też

/arch (Minimalna architektura procesora CPU)
Wstępnie zdefiniowane makra
Opcje kompilatora MSVC
Składnia wiersza polecenia kompilatora MSVC