/arch
(ARM64)
Specifica l'estensione dell'architettura arm A-Profile per la generazione di codice in ARM64. Per altre informazioni sulle altre architetture di destinazione, vedere (x86), (x64) e (ARM).For more information about /arch
for other target architectures, see /arch
(x86), /arch
(x64), and /arch
(ARM).
Sintassi
/arch:<armv8.0|armv8.1|armv8.2|armv8.3|armv8.4|armv8.5|armv8.6|armv8.7|armv8.8|armv8.9>
[+funzionalità]
/arch:<armv9.0|armv9.1|armv9.2|armv9.3|armv9.4>
[+funzionalità]
Argomenti
/arch:armv8.x
Specifica l'architettura Armv8-A, dove x
è un valore di estensione obbligatorio compreso tra 0
e 9
1. Per impostazione predefinita, il compilatore usa il /arch:armv8.0
comportamento se non viene specificata alcuna architettura.
/arch:armv9.x
2
Specifica l'architettura Armv9-A, dove x
è un valore di estensione obbligatorio da 0
a 4
. Per impostazione predefinita, il compilatore usa il /arch:armv8.0
comportamento se non viene specificata alcuna architettura.
Osservazioni:
È possibile specificare un'estensione ARM64 da Armv8.0-A tramite Armv8.9-A e Armv9.0-A tramite Armv9.4-A. Facoltativamente, abilitare una o più funzionalità di architettura aggiungendo un argomento di funzionalità all'opzione3. Ad esempio, per specificare come destinazione Armv8.0-A e abilitare la funzionalità , aggiungere l'argomento della funzionalità FEAT_LSE
in modo che l'opzione diventi /arch:armv8.0+lse
.lse
Per altre informazioni sulle funzionalità disponibili e sui relativi requisiti, vedere (ARM64)3./feature
Nota
A seconda della versione di Visual Studio, il compilatore potrebbe non generare ancora istruzioni da tutti i set di funzionalità richiesti dal livello di estensione specificato. Ad esempio, /arch:armv8.1
consente alle funzioni intrinseche di *Interlocked*
usare l'istruzione atomica appropriata introdotta con la funzionalità FEAT_LSE
di estensione Armv8.1-A, ma il supporto del compilatore richiede Visual Studio 2022 versione 17.2 o successiva.
La _M_ARM64
macro è definita per impostazione predefinita durante la compilazione per una destinazione ARM64. Per altre informazioni, vedere Macro predefinite\
La __ARM_ARCH
macro è definita per /arch:ARMv8.0
e versioni successive. Indica il livello di estensione dell'architettura arm che il compilatore ha come destinazione. Per altre informazioni, vedere Macro predefinite.
#if __ARM_ARCH >= 802
// code that requires ARMv8.2...
#endif
/arch
influisce solo sulla generazione del codice per le funzioni native. Quando si usa /clr
per la compilazione, /arch
non ha alcun effetto sulla generazione di codice per le funzioni gestite.
Per impostare l'opzione del /arch
compilatore in Visual Studio
Aprire la finestra di dialogo Pagine delle proprietà per il progetto. Per altre informazioni, vedere Impostare il compilatore e le proprietà di compilazione.
Selezionare la pagina delle proprietà Proprietà di configurazione>C/C++>Riga di comando.
Nella casella Opzioni aggiuntive aggiungere
/arch:armv8.0
o sostituirearmv8.0
con un'estensione ARM64 diversa. Scegli OK per salvare le modifiche.
Per impostare l'opzione del compilatore a livello di codice
- Vedere AdditionalOptions.
1 Estensione armv8.9
dell'architettura Armv8-A è disponibile a partire da Visual Studio 2022 versione 17.10.
2 Estensioni dell'architettura Armv9-A sono disponibili a partire da Visual Studio 2022 versione 17.10.
3 L'abilitazione delle funzionalità di architettura è disponibile a partire da Visual Studio 2022 versione 17.10.
Vedi anche
/arch
(Architettura minima della CPU)
Macro predefinite
Opzioni del compilatore MSVC
Sintassi della riga di comando del compilatore MSVC