2013-04-29 5 views
9

GCC avere -march= e -mtune come descritto here. Ma non è ovvio quale delle opzioni scegliere per la piattaforma x64 come quella generica. Supponi, -mtune= il valore generic, ma -march= per x64 no.gcc marcia generica per tutte le piattaforme x64

Ho il sospetto che il -march=nocona (come si vede spesso ovunque) o anche -march=i686 -m64 sia la soluzione, ma non ne sono sicuro.

+1

Hai bisogno di chiarire quello che vuoi? Stai compilando un eseguibile a 64 bit su un sistema a 32 bit o intendi la tua app solo per sistemi a 64 bit? – devnull

+0

Host e destinazione a 64 bit (senza perdita di generalità) – Orient

+0

Voglio che il programma si avvii del tutto (dai vecchi x64 ai moderni processori corei7-avx). – Orient

risposta

13

Il generico x86-64 -march è -march=x86-64.

È solito l'impostazione predefinita per GCC mira x86-64, ma che di default può essere modificata in configure tempo passando valore appropriato per --with-arch.

+1

Ma "echo" "| gcc -v -E - 2> & 1 | grep cc1' produce quanto segue: 'c:/mingw/bin /../ libexec/gcc/x86_64-w64-mingw32/4.8.0/cc1.exe -E -quiet -v -iprefix c: \ mingw \ bin \ ../ lib/gcc/x86_64-w64-mingw32/4.8.0/-D_REENTRANT - -mtune = core2 -march = nocona' – Orient

+0

@Dukales: sulla mia macchina produce '/ usr/lib/gcc/x86_64-unknown -linux-gnu/4.8.0/cc1 -E -quiet -v - -mtune = generic -march = x86-64'. Vedi il punto su '--with-arch'. – Fanael

+0

Grazie. Quindi, dipende dalla build di GCC/MinGW. – Orient