gcc menggunakan flag -mcpu = (atau -march =) untuk menghasilkan kode yang dioptimalkan untuk jenis CPU tertentu. Ada banyak varian lengan, dan target Lengan gcc juga menyediakan berbagai jenis FPU.
-Mcpu = / - march = flags dan -mfpu = flag mana yang benar / asli yang digunakan ketika mengkompilasi kode C pada Raspberry Pi?
gcc -mcpu=native -march=native -Q --help=target
memberi saya*** Error in
gcc ': bebas ganda atau korupsi (atas): 0x0020c5a8 *** `, di Raspbian Jessie 4.4.13-v7 +, armv7l.Saya menemukan bahwa set ini harus yang optimal:
(the -mfloat-abi = hard, tentu saja hanya ketika Anda menggunakan distro armhf)
sumber
Saya tidak bisa menjawab tentang
-mfpu
flag, tetapi saya sarankan untuk mencoba ini dulu:Seperti yang dilaporkan dalam
GCC manual page related to ARM options
:Anda kemudian dapat menambahkan
-Q -v
ke AndaGCC flags
untuk melihat optimasi apa yang diaktifkan dan melanjutkan ke optimasi lebih lanjut jika perlu.Ini adalah output yang digunakan
-march=native
dengan program sampel pada Raspberry Pi saya:sumber
-march=native
ini diterapkan untukARM GCC
. Raspberry Pi mungkin merupakan arsitektur yang tidak didukung (dan karenanya tidak terdeteksi), dalam hal-march=native
ini tidak berpengaruh.$ gcc -march=native test.c
cc1: error: bad value (native) for -march switch
ia mengatakan hal yang sama dalam output Anda. (sama dengan -mcpu juga)-march=native
telah diperkenalkan jugaARM
.