2013-04-29 7 views
9

GCC ma -march= i -mtune opcję zgodnie z opisem here. Ale nie jest oczywiste, która z opcji do wyboru na platformę x64 jako ogólną. Powiedzmy, że -mtune= ma wartość generic, ale -march= dla x64 nie ma.Generic gcc dla wszystkich platform x64

Podejrzewam, że -march=nocona (jak często widziane wszędzie) lub nawet -march=i686 -m64 jest rozwiązaniem, ale nie jestem pewien.

+1

Musisz wyjaśnić, co chcesz? Czy kompilujesz 64-bitowy plik wykonywalny w systemie 32-bitowym, czy też zamierzasz aplikację tylko dla systemów 64-bitowych? – devnull

+0

64-bitowy host i cel (bez utraty ogólności) – Orient

+0

Chcę, aby program uruchamiał się w ogóle (od starożytnego x64 do nowoczesnych procesorów corei7-avx). – Orient

Odpowiedz

13

Ogólne x86-64 -march to -march=x86-64.

Jest zwykle domyślny dla GCC kierowania x86-64, ale domyślne można zmienić w configure czasu przekazując odpowiednią wartość do --with-arch.

+1

Ale "echo" "| gcc -v -E - 2> & 1 | grep cc1' produkuje następujące: '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: na moim komputerze produkuje '/ usr/lib/gcc/x86_64-unknown -linux-gnu/4.8.0/cc1 -E -quiet -v - -mtune = ogólny -march = x86-64'. Zobacz punkt dotyczący '--with-arch'. – Fanael

+0

Dziękuję. To zależy od wersji GCC/MinGW. – Orient