Я хочу скомпилировать некоторый код для запуска на встроенном Linux с архитектурой MIPS.Но я не могу заставить мой кросс-компилятор MIPS (mips-linux-gnu-gcc
) правильно скомпилировать мой файл hello-world.Я имею в виду, это компилируется без ошибок.Он просто не запускается на моем встроенном устройстве.
Я загрузил пример исполняемого файла с устройства (который, очевидно, работает правильно) и запустил file
это вывод, который я получаю:
ELF 32-bit MSB executable, MIPS, MIPS-I version 1 (SYSV), dynamically linked, interpreter /lib/ld-, stripped
Но когда я компилирую свой код с помощью
mips-linux-gnu-gcc main.c
file
, результат для моего скомпилированного файла:
ELF 32-bit MSB executable, MIPS, MIPS32 rel2 version 1 (SYSV), dynamically linked, interpreter /lib/ld., for GNU/Linux 3.2.0, BuildID[sha1]=..., not stripped
Я попытался добавить -mips1 -mfp32
в команду компиляции, но все же вывод не то, что я хочу:
ELF 32-bit MSB executable, MIPS, MIPS32 rel2 version 1 (SYSV), dynamically linked, interpreter /lib/ld., for GNU/Linux 3.2.0, BuildID[sha1]=..., not stripped
Какие флаги мне нужно использовать, чтобы компилятор правильно компилировал мою программу?Или мне нужен совершенно другой компилятор?Я подозреваю, что это только флаги, но я не знаю, какие именно.Я подозреваю, что проблема в том, что я получаю MIPS32 вместо MIPS-I.