LINUX.ORG.RU

guruplug ошибки запуска программы

 


0

1

Доброго всем времени суток.

пытаюсь запустить простейшую программу hello world на guruplug.
Собственно код:

#include <stdio.h>
int main(){
 printf("Hello world!\n");
 return(0);
}

компилирую его gcc, собранный buildroot-ом
при запуске получаю вот это:
root@guruplug-debian:~# ./binFile4
-bash: ./binFile4: No such file or directory
strace показывает вот это:
root@guruplug-debian:~# strace ./binFile4
execve("./binFile4", ["./binFile4"], [/* 13 vars */]) = -1 ENOENT (No such file or directory)
dup(2)                                  = 3
fcntl64(3, F_GETFL)                     = 0x20002 (flags O_RDWR|O_LARGEFILE)
fstat64(3, {st_mode=S_IFCHR|0600, st_rdev=makedev(4, 64), ...}) = 0
ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, {B115200 opost isig icanon echo ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x4001e000
_llseek(3, 0, 0xbeec7998, SEEK_CUR)     = -1 ESPIPE (Illegal seek)
write(3, "strace: exec: No such file or di"..., 40strace: exec: No such file or directory
) = 40
close(3)                                = 0
munmap(0x4001e000, 4096)                = 0
exit_group(1)                           = ?
но что-то ни как я не могу понять вывод strace. Чего он не может найти? Сам бинарник? Тогда как он его запустил? Подскажите, что я делаю не так

но что-то ни как я не могу понять вывод strace. Чего он не может найти? Сам бинарник? Тогда как он его запустил? Подскажите, что я делаю не так

strace тут ни при чем. У тебя execve возвращает -1 и ошибку ENOENT. Как говориться в man execve «The file filename or a script or ELF interpreter does not exist, or a shared library needed for file or interpreter cannot be found.»

Я бы посмотрел еще раз на кросс-компилятор (потому как, видимо, дело в нем), как ты его собираешь в buildroot'e. ABI какое стоит...

Dennis7 ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.