Какие флаги компиляции мне нужно использовать, чтобы получить этот `file` вывод? - PullRequest
2 голосов
/ 20 июня 2019

Я хочу скомпилировать некоторый код для запуска на встроенном 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.

...