gcc принимает флаги -mcpu = (или -march =) для создания оптимизированного кода для конкретного типа процессора. Существует множество вариантов рук, и цель gcc Arm также предоставляет множество типов FPU.
Какие -mcpu = / - march = flags и -mfpu = flags являются правильными / нативными для использования при компиляции кода C на Raspberry Pi?
gcc -mcpu=native -march=native -Q --help=target
дает мне*** Error in
gcc ': двойное освобождение или повреждение (вверху): 0x0020c5a8 *** `, на Raspbian Jessie 4.4.13-v7 +, armv7l.Я обнаружил, что этот набор должен быть оптимальным:
(-mfloat-abi = hard, конечно, только когда вы используете дистрибутив armhf)
источник
Я не могу ответить о
-mfpu
флаге, но я бы посоветовал сначала попробовать:Как сообщается в
GCC manual page related to ARM options
:Затем вы можете добавить
-Q -v
в свой список,GCC flags
чтобы увидеть, какие оптимизации включены, и перейти к дальнейшей оптимизации, если это необходимо.Это вывод
-march=native
с использованием примера программы на моем Raspberry Pi:источник
-march=native
реализовано дляARM GCC
. Raspberry Pi может быть неподдерживаемой (и, следовательно, необнаруженной) архитектурой, в этом случае не-march=native
имеет никакого эффекта.$ gcc -march=native test.c
cc1: error: bad value (native) for -march switch
он говорит то же самое в вашем выводе. (то же самое с -mcpu)-march=native
он также был представленARM
.