/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 9
1. Domyślnie kompilator używa /arch:armv8.0
zachowania, jeśli nie określono żadnej architektury.
/arch:armv9.x
2
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_LSE
rozszerzenia 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
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).
Wybierz stronę Właściwości>konfiguracji C/C++>Wiersza polecenia.
W polu Dodatkowe opcje dodaj
/arch:armv8.0
lub zastąp innymarmv8.0
rozszerzeniem ARM64. Wybierz przycisk OK , aby zapisać zmiany.
Aby programowo ustawić tę opcję kompilatora
- Zobacz: AdditionalOptions.
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