GCC (toolchain) для Ralink SoC – ELF не найден и синтаксическая ошибка

Я купил китайскую P2P-камеру и не было потока MJPEG, поэтому я хотел скомпилировать mjpg-streamer . Вот информация моего процессора:

 # cat /proc/cpuinfo system type : Ralink SoC processor : 0 cpu model : MIPS 24K V4.12 BogoMIPS : 239.61 wait instruction : yes microsecond timers : yes tlb_entries : 32 extra interrupt vector : yes hardware watchpoint : yes ASEs implemented : mips16 dsp VCED exceptions : not available VCEI exceptions : not available # uname -a Linux (none) 2.6.21 #878 Tue Oct 29 09:53:25 CST 2013 mips unknown 

Я попытался использовать Sourcery CodeBench для MIPS GNU / Linux (последняя версия) и попытался скомпилировать простой пример «Hello world» с помощью этой команды:

 $ mips-linux-gnu-gcc -Wall hello.c -o hello 

После выполнения я получил следующее сообщение:

 # ./hello ./hello: line 1: ELF@04: not found ./hello: line 2: syntax error: "(" unexpected 

Затем я попытался перекомпилировать эту команду:

 $ mips-linux-gnu-gcc -mips16 -Wall hello.c -o hello 

Но результат был:

 # ./hello ./hello: line 1: syntax error: "(" unexpected 
  • Я использую неправильный компилятор, если да, то какой из них правильный?
  • Не хватает или неправильно использую аргументы?

РЕДАКТИРОВАТЬ:

 $readelf -h HKIPC #Extracted file from the device ELF Header: Magic: 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 Class: ELF32 Data: 2's complement, little endian Version: 1 (current) OS/ABI: UNIX - System V ABI Version: 0 Type: EXEC (Executable file) Machine: MIPS R3000 Version: 0x1 Entry point address: 0x406420 Start of program headers: 52 (bytes into file) Start of section headers: 643764 (bytes into file) Flags: 0x10001007, noreorder, pic, cpic, o32, mips2 Size of this header: 52 (bytes) Size of program headers: 32 (bytes) Number of program headers: 6 Size of section headers: 40 (bytes) Number of section headers: 25 Section header string table index: 24 $file HKIPC HKIPC: ELF 32-bit LSB executable, MIPS, MIPS-II version 1 (SYSV), dynamically linked (uses shared libs), stripped 

 $readelf -h hello #Compiled with mips-linux-gnu-gcc -mips2 -EL -mabi=32 hello.c -o hello ELF Header: Magic: 7f 45 4c 46 01 01 01 00 01 00 00 00 00 00 00 00 Class: ELF32 Data: 2's complement, little endian Version: 1 (current) OS/ABI: UNIX - System V ABI Version: 1 Type: EXEC (Executable file) Machine: MIPS R3000 Version: 0x1 Entry point address: 0x400430 Start of program headers: 52 (bytes into file) Start of section headers: 2732 (bytes into file) Flags: 0x70001005, noreorder, cpic, o32, mips32r2 Size of this header: 52 (bytes) Size of program headers: 32 (bytes) Number of program headers: 8 Size of section headers: 40 (bytes) Number of section headers: 34 Section header string table index: 31 $file hello hello: ELF 32-bit LSB executable, MIPS, MIPS32 rel2 version 1, dynamically linked (uses shared libs), with unknown capability 0xf41 = 0x756e6700, with unknown capability 0x70100 = 0x1040000, not stripped 

One Solution collect form web for “GCC (toolchain) для Ralink SoC – ELF не найден и синтаксическая ошибка”

Libc камеры не соответствует libc, используемому для toolchain. В этом случае программа должна быть скомпилирована, статически добавив статический переключатель. После этого «Hello world» является исполняемым на устройстве. Другое решение – добавить все необходимые общие библиотеки (я не тестировал это).

Люди из канала #mipslinux irc помогли мне решить эту проблему – спасибо.

  • Декомпилировать / запустить исполняемый файл MIPS под x86_64 Ubuntu
  • Нужна помощь Кросс-компиляция Openssl для MIPS
  • bnx2: Не удается загрузить файл прошивки «bnx2 / bnx2-mips-09-6.2.1b.fw»
  • Двоичный файл ARP для MIPS64 (big-endian), совместимый с Linux v2.6
  • как сделать доступную только для чтения файловую систему на busybox?
  • Host CFLAGS для перекрестной сборки GCC
  • Больше ничего не видно на консоли после «Начало ядра ...»
  • Linux и Unix - лучшая ОС в мире.