Вам необходимо использовать кросс-компилятор для компиляции для ARM с вашего хоста, работающего либо на x86, либо на x86_64, причиной чего является ваш хост и цель - 2 полностью независимые архитектуры.
Перекрестный компилятор обычно должен быть сконфигурирован для вывода только 32-битного или 64-битного двоичного кода для ARM (не оба). Большинство приложений ARM-устройств используют только 32-битные, и поэтому использование кросс-компилятора без каких-либо дополнительных аргументов будет создавать 32-битные двоичные файлы.
Наконечники имеют другие -m флаги, чтобы указать тип машины, такой как armv7, arm aort 8 и т. Д. Для дальнейшей оптимизации. Вам нужно посмотреть документацию кросс-компилятора ARM.
Что касается получения правильной инструментальной цепочки, которая работает для вашей цели и работает под CentOS, лучше начать с сайта поставщика целевого устройства.
Опция -m32, предоставленная версией gcc x86_64, делает gcc компиляции 32-разрядных двоичных файлов вместо 64-разрядных, поскольку набор команд x86 и x86_64 (AMD64 или Intel EMT64) весьма схожи. Особенно тот факт, что он позволяет легко выполнять 32-битные инструкции в 64-битном режиме.
http://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html – auselen
Нет такой вещи, как 64-разрядная ARM. –