Condividi tramite


/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 91. Per impostazione predefinita, il compilatore usa il /arch:armv8.0 comportamento se non viene specificata alcuna architettura.

/arch:armv9.x2
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_LSEin 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_LSEdi 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

  1. Aprire la finestra di dialogo Pagine delle proprietà per il progetto. Per altre informazioni, vedere Impostare il compilatore e le proprietà di compilazione.

  2. Selezionare la pagina delle proprietà Proprietà di configurazione>C/C++>Riga di comando.

  3. Nella casella Opzioni aggiuntive aggiungere /arch:armv8.0 o sostituire armv8.0 con un'estensione ARM64 diversa. Scegli OK per salvare le modifiche.

Per impostare l'opzione del compilatore a livello di codice

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