Bagikan melalui


/arch (ARM64)

Menentukan ekstensi arsitektur Arm A-Profile untuk pembuatan kode di ARM64. Untuk informasi selengkapnya tentang /arch arsitektur target lainnya, lihat /arch (x86), /arch (x64), dan /arch (ARM).

Sintaks

/arch:<armv8.0|armv8.1|armv8.2|armv8.3|armv8.4|armv8.5|armv8.6|armv8.7|armv8.8|armv8.9>[+fitur]
/arch:<armv9.0|armv9.1|armv9.2|armv9.3|armv9.4>[+fitur]

Argumen

/arch:armv8.x
Menentukan arsitektur Armv8-A, di mana x merupakan nilai ekstensi yang diperlukan dari 0 ke 91. Secara default, pengkompilasi menggunakan /arch:armv8.0 perilaku jika tidak ada arsitektur yang ditentukan.

/arch:armv9.x2
Menentukan arsitektur Armv9-A, di mana x adalah nilai ekstensi yang diperlukan dari 0 ke 4. Secara default, pengkompilasi menggunakan /arch:armv8.0 perilaku jika tidak ada arsitektur yang ditentukan.

Keterangan

Anda dapat menentukan ekstensi ARM64 dari Armv8.0-A hingga Armv8.9-A, dan Armv9.0-A melalui Armv9.4-A. Secara opsional, aktifkan satu atau beberapa fitur arsitektur dengan menambahkan argumen fitur ke opsi3. Misalnya, untuk menargetkan Armv8.0-A dan mengaktifkan fitur FEAT_LSE, tambahkan argumen lse fitur sehingga opsi menjadi /arch:armv8.0+lse. Untuk informasi selengkapnya tentang fitur yang tersedia dan persyaratannya, lihat (ARM64)3./feature

Catatan

Bergantung pada versi Visual Studio Anda, pengkompilasi mungkin belum menghasilkan instruksi dari semua set fitur yang diperlukan oleh tingkat ekstensi yang Anda tentukan. Misalnya, /arch:armv8.1 memungkinkan *Interlocked* fungsi intrinsik untuk menggunakan instruksi atom yang sesuai yang diperkenalkan dengan fitur FEAT_LSEekstensi Armv8.1-A , tetapi dukungan kompilator memerlukan Visual Studio 2022 versi 17.2 atau yang lebih baru.

_M_ARM64 Makro didefinisikan secara default saat mengkompilasi untuk target ARM64. Untuk informasi selengkapnya, lihat Makro yang telah ditentukan sebelumnya\

__ARM_ARCH Makro didefinisikan untuk /arch:ARMv8.0 dan lebih tinggi. Ini menunjukkan tingkat ekstensi arsitektur ARM yang ditargetkan pengkompilasi. Untuk informasi selengkapnya, lihat Makro yang telah ditentukan sebelumnya.

#if __ARM_ARCH >= 802
    // code that requires ARMv8.2...
#endif

/arch hanya memengaruhi pembuatan kode untuk fungsi asli. Saat Anda menggunakan /clr untuk mengkompilasi, /arch tidak berpengaruh pada pembuatan kode untuk fungsi terkelola.

Untuk mengatur /arch opsi pengkompilasi di Visual Studio

  1. Buka kotak dialog Halaman Properti untuk proyek. Untuk informasi selengkapnya, lihat Mengatur pengkompilasi C++ dan membuat properti di Visual Studio.

  2. Pilih halaman properti Properti>Konfigurasi C/C++>Baris Perintah.

  3. Dalam kotak Opsi tambahan, tambahkan /arch:armv8.0 atau ganti armv8.0 dengan ekstensi ARM64 yang berbeda. Pilih OK untuk menyimpan perubahan.

Untuk mengatur opsi pengkompilasi ini secara terprogram

1 Ekstensi armv8.9 arsitektur Armv8-A tersedia mulai visual Studio 2022 versi 17.10.
2 Ekstensi arsitektur Armv9-A tersedia mulai visual Studio 2022 versi 17.10.
3 Pengaktifan fitur Arsitektur tersedia mulai dari Visual Studio 2022 versi 17.10.

Lihat juga

/arch (Arsitektur CPU minimum)
Makro yang telah ditentukan sebelumnya
Opsi pengkompilasi MSVC
Sintaks baris perintah pengkompilasi MSVC