Если у Вас нет срочной необходимости предназначаться для более старой архитектуры core2, pentium4, или pentium3, я приблизился бы к ситуации как так. Выполните эту команду:
# 64-bit system
$ getconf LONG_BIT
64
# 32-bit system
$ getconf LONG_BIT
32
Если Ваша система возвращается 64, затем используют -march
переключатель i64em. Если Вы добираетесь 32, то используйте i32.
выборка из документов ICC
Label Meaning
i32 The option is available on systems using IA-32 architecture.
i64em The option is available on systems using Intel� 64 architecture.
i64 The option is available on systems using IA-64 architecture.
Можно использовать инструмент командной строки cpuid
получить больше деталей о ЦП данной системы. Существуют другие способы достигнуть эту информацию также, но это - мой предпочтительный метод.
$ cpuid -1 | less
CPU:
vendor_id = "GenuineIntel"
version information (1/eax):
processor type = primary processor (0)
family = Intel Pentium Pro/II/III/Celeron/Core/Core 2/Atom, AMD Athlon/Duron, Cyrix M2, VIA C3 (6)
model = 0x5 (5)
stepping id = 0x5 (5)
extended family = 0x0 (0)
extended model = 0x2 (2)
(simple synth) = Intel Core i3 / i5 / i7 (Clarkdale K0) / Pentium U5000 Mobile / Pentium P4505 / U3405 / Celeron Mobile P4000 / U3000 (Arrandale K0), 32nm
miscellaneous (1/ebx):
process local APIC physical ID = 0x5 (5)
cpu count = 0x10 (16)
CLFLUSH line size = 0x8 (8)
brand index = 0x0 (0)
...
cpuid
шоу, что все предшествующие семейства покрыты им также, это показывает это в строке семейства вывода. Вы обычно только нацелены на более старые семейства, если Вы будете планированием выполнения кода там, и Вы не хотите, чтобы компилятор использовал оптимизацию от более новых семейств. А-ч – slm♦ 14.02.2014, 12:45