Apa artinya dan dapatkah saya mengaturnya dalam nilai yang berbeda?
Apa artinya dan dapatkah saya mengaturnya dalam nilai yang berbeda?
Jawaban:
Arsitektur adalah yang ingin Anda bangun, arsitektur yang valid adalah yang dapat Anda bayangkan untuk dibangun dengan basis kode Anda.
Jadi mungkin Anda hanya ingin membangun biner untuk armv7, tetapi kode sumber yang sama akan dapat dikompilasi dengan baik untuk armv7 dan armv6. Jadi VALID_ARCHS = armv6 armv7 armv7s
, tetapi Anda menetapkan ARCHS = armv7s
karena hanya itu yang sebenarnya ingin Anda buat dengan kode Anda.
Atau, dalam bahasa Apple:
ARCHS (Arsitektur)
Daftar pengenal yang dipisahkan spasi. Menentukan arsitektur (ABI, model prosesor) yang menjadi target biner. Jika setelan build ini menentukan lebih dari satu arsitektur, biner yang dihasilkan mungkin berisi kode objek untuk setiap arsitektur yang ditentukan.
dan:
VALID_ARCHS (Arsitektur yang Valid)
Daftar pengenal yang dipisahkan spasi. Menentukan arsitektur tempat biner dapat dibangun. Selama pembuatan, daftar ini berpotongan dengan nilai pengaturan build ARCHS; daftar yang dihasilkan menentukan arsitektur tempat biner dapat berjalan. Jika daftar arsitektur yang dihasilkan kosong, target tidak menghasilkan biner.
Sumber: Referensi Pengaturan Xcode Build
Dalam praktiknya, Anda pergi VALID_ARCHS
sendiri dan tidak khawatir untuk mengubahnya, dan hanya mengutak-atik ARCHS
untuk mengatur arsitektur yang ingin Anda bangun. Biasanya, Anda menyetel build Debug ke hanya NATIVE_ARCH
, karena Anda hanya ingin membangun versi debug untuk mesin yang akan Anda uji / jalankan, dan Rilis build untuk spektrum penuh arsitektur yang ingin Anda dukung.
Dari dokumen Apple, kita tahu bahwa biner Xcode yang akan dibangun adalah daftar yang Valid Architectures
berpotongan Architectures
.
Jadi, saya rasa jawaban Jeremy tidak benar, seperti yang dia katakan:
Jadi mungkin Anda hanya ingin membangun biner untuk armv7, tetapi kode sumber yang sama akan dapat
dikompilasi dengan baik untuk armv7 dan armv6. JadiVALID_ARCHS = armv6 armv7 armv7s
, tetapi Anda menyetel ARCHS = armv7s karena hanya itu yang ingin Anda buat dengan kode Anda.
Saat Anda menyetel VALID_ARCHS = armv6 armv7 armv7s
, dan menyetel ARCHS = armv7s
, hasil dari biner Xcode yang akan dibangun adalah armv7s, tidak bisa kompatibel dengan armv6 / armv7.
Dan jika Anda ingin kompatibel dengan armv6 / armv7 / armv7s, Anda harus mengatur VALID_ARCHS = armv6 armv7 armv7s
dan ARCHS = armv6
. Dengan cara ini, hasil dari Xcode biner yang akan dibangun adalah armv6, dan dapat berjalan dengan baik di kedua armv6 / armv7 / armv7 karena prosesor lengan kompatibel ke belakang .