Saya tertarik untuk memverifikasi apakah perpustakaan statis iPhone yang diberikan telah dibangun untuk ARM atau Intel.
Ini lebih dari rasa ingin tahu. Apakah ada semacam alat khusus Mac OS X atau BSD untuk melakukan ini? Posting ini memberi contoh di Linux.
file
mungkin akan memberitahumu.otool
tentunya harus bisa. Tapi saya akan cobafile
dulu, misContoh dengan arsip:
sumber
file
sering gagal.Seperti disebutkan sebelumnya,
file
tidak selalu berhasil.otool -hv -arch all
mungkin adalah hal terdekat yang dijamin berfungsi - ini memberikan informasi arsitektur untuk setiap file objek tunggal di perpustakaan.Contoh:
sumber
Sebagai alternatif, saya temukan
objdump
bisa bekerja dengan baik. Sebagai contoh, di lingkungan saya, saya membangun arsip perpustakaan dengan vxWorks dan perlu menghubungkannya dengan proyek lain. Untuk menguji apakah arsipnya adalah arsitektur yang benar, saya dapat melakukan sesuatu seperti berikut (sintaks bash):Contoh ini tidak tepat benar, karena beberapa baris DO muncul yang tidak mengatakan elf32-sparc-vxworks, tetapi cukup mudah untuk mengadaptasi ini.
Satu manfaat yang bagus dari hal ini adalah bahwa
objdump
, atau varian yang bernama serupa, diinstal pada kebanyakan sistem operasi * nix, sedangkan alat yang disarankan dalam respons lain tidak.sunting Terjadi pada saya OP bertanya pada OSX. Permintaan maaf saya.
sumber
objdump
Anda dapat menginstal Binutils GNU melalui MacPorts. Untuk melihat semua arsitektur yang tersedia, jalankan sajaport search binutils
. Alat untuk pengembangan asli diawali untuk menghindari konflik (misalnya,gobjdump
bukanobjdump
). Anda mungkin ingin membuat alias untuk kenyamanan.Skrip bash ini akan membantu Anda secara pemrograman mendapatkan daftar arsitektur ke dalam variabel.
list_archs.sh:
Contoh penggunaan:
sumber