/arch
(ARM64)
Anger arkitekturtillägget Arm A-Profile för kodgenerering på ARM64. Mer information om /arch
för andra målarkitekturer finns i /arch
(x86), /arch
(x64)och /arch
(ARM).
Syntax
/arch:<armv8.0|armv8.1|armv8.2|armv8.3|armv8.4|armv8.5|armv8.6|armv8.7|armv8.8|armv8.9>
[+funktion]
/arch:<armv9.0|armv9.1|armv9.2|armv9.3|armv9.4>
[+funktion]
Argument
/arch:armv8.x
Anger arkitekturen Armv8-A, där x
är ett obligatoriskt tilläggsvärde från 0
till 9
1. Kompilatorn använder som standard /arch:armv8.0
beteende om ingen arkitektur har angetts.
/arch:armv9.x
2
Anger Armv9-A-arkitekturen, där x
är ett obligatoriskt tilläggsvärde från 0
till 4
. Kompilatorn använder som standard /arch:armv8.0
beteende om ingen arkitektur har angetts.
Anmärkningar
Du kan ange ett ARM64-tillägg från Armv8.0-A till Armv8.9-A och Armv9.0-A via Armv9.4-A. Du kan också aktivera en eller flera arkitekturfunktioner genom att lägga till ett funktionsargument till alternativet3. Om du till exempel vill använda Armv8.0-A som mål och aktivera funktion FEAT_LSE
lägger du till funktionsargumentet lse
så att alternativet blir /arch:armv8.0+lse
. Mer information om tillgängliga funktioner och deras krav finns i /feature
(ARM64)3.
Not
Beroende på din version av Visual Studio kanske kompilatorn ännu inte genererar instruktioner från alla funktionsuppsättningar som krävs av den tilläggsnivå som du anger. Till exempel tillåter /arch:armv8.1
att *Interlocked*
inbyggda funktioner använder lämplig atomisk instruktion som introducerades med armv8.1-A-tilläggsfunktionen FEAT_LSE
, men kompilatorstöd kräver Visual Studio 2022 version 17.2 eller senare.
Det _M_ARM64
makrot definieras som standard vid kompilering för ett ARM64-mål. Mer information finns i fördefinierade makron.
Makrot __ARM_ARCH
definieras för /arch:ARMv8.0
och senare. Det anger arm-arkitekturtilläggsnivån som kompilatorn riktar in sig på. Mer information finns i fördefinierade makron.
#if __ARM_ARCH >= 802
// code that requires ARMv8.2...
#endif
/arch
påverkar endast kodgenerering för inbyggda funktioner. När du använder /clr
för att kompilera har /arch
ingen effekt på kodgenereringen för hanterade funktioner.
Så här anger du /arch
kompilatoralternativet i Visual Studio
Öppna dialogrutan egenskapssidor för projektet. Mer information finns i Ange C++-kompilator- och byggegenskaper i Visual Studio.
Välj egenskapssidan Konfigurationsegenskaper>C/C++>kommandorad.
I rutan Ytterligare alternativ lägger du till
/arch:armv8.0
eller ersätterarmv8.0
med ett annat ARM64-tillägg. Välj OK för att spara ändringarna.
Så här ställer du in det här kompilatoralternativet programmatiskt
1 Armv8-A arkitekturtillägg armv8.9
är tillgängligt från och med Visual Studio 2022 version 17.10.
2 Armv9-A arkitekturtillägg är tillgängliga från och med Visual Studio 2022 version 17.10.
3 Arkitektur är funktionsaktivering tillgänglig från och med Visual Studio 2022 version 17.10.
Se även
/arch
(minsta cpu-arkitektur)
fördefinierade makron
MSVC-kompilatoralternativ
kommandoradssyntax för MSVC-kompilatorn