Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Anger arkitekturtillägget Arm A-Profile för kodgenerering på ARM64. Dessa växlar gäller för ARM64-målversionen av kompilatorn. 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 91. 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_LSElä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.0eller ersätterarmv8.0med 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