Make dan CMake digunakan untuk membangun file CMakeLists.txt dan Makefile. Dalam banyak kasus, konten migrasi dalam file CMakeLists.txt dan Makefile digunakan untuk menentukan opsi kompilasi, seperti tipe data, arsitektur prosesor, dan opsi pembuatan kode. Topik ini menjelaskan cara memodifikasi file CMakeLists.txt dan Makefile saat Anda memigrasikan file-file ini dari platform x86 ke Instance Elastic Compute Service (ECS) YiTian.
Gunakan C dan C++ untuk menambahkan opsi kompilasi -mabi=lp64
-m64 adalah opsi kompilasi untuk aplikasi platform x86 yang menginstruksikan kompiler untuk mengkompilasi kode sebagai 64-bit. Opsi ini tidak didukung pada instance YiTian. Anda harus mengubah -m64 menjadi -mabi=lp64.
Gunakan C dan C++ untuk secara paksa menambahkan opsi kompilasi -fsigned-char
Tipe char default berbeda antara arsitektur x86 dan arsitektur ARM. Tipe char default adalah signed char dalam arsitektur x86, sedangkan pada instance YiTian, tipe char default adalah unsigned char. Saat memigrasikan kode dari platform x86 ke instance YiTian, Anda harus menentukan signed char sebagai tipe char.
Gunakan C dan C++ untuk menentukan opsi arsitektur prosesor
Saat mengkompilasi kode pada instance YiTian, Anda harus mengubah opsi arsitektur prosesor march mtune mcpu menjadi -march=armv8-a+sve2 -mcpu=neoverse-n1. Dengan cara ini, kompiler dapat menghasilkan program yang dapat dieksekusi berdasarkan mikro-arsitektur dan set instruksi instance YiTian untuk meningkatkan kinerja.
Contoh
Berikut adalah contoh cara memodifikasi kode saat memigrasikan file build Make dan CMake dari platform x86 ke instance YiTian:
Kode sebelum dimodifikasi:
CFLAGS=-g3 -O2 -DNDEBUG -m64 -Wall -march=corei7Kode setelah dimodifikasi:
# GNU Compiler Collection (GCC) 10 (cocok untuk Neoverse N1)
CFLAGS=-g3 -O2 -DNDEBUG -mabi=lp64 -Wall -march=armv8-a+crc+sve2 -mcpu=neoverse-n1 -fsigned-char
# GCC 11 (cocok untuk Neoverse N2)
CFLAGS=-g3 -O2 -DNDEBUG -mabi=lp64 -Wall -march=armv8-a+crc+sve2 -mcpu=neoverse-n2 -fsigned-char