BINFMT_FLAT: reloc outside program
在linux中用arm-elf-gcc编译,使用-elf2flt参数,通过后用tftp下载到uclinux的 /var中执行,结果报BINFMT_FLAT: reloc outside program错误。
/var> ./hello
BINFMT_FLAT: reloc outside program 0x11c00 (0 - 0x7064/0x5ca0), killing hello!
BINFMT_FLAT: reloc outside program 0x11c00 (0 - 0x7064/0x5ca0), killing hello!
pid 34: failed 11
解决方法:
后来知道在tftp下载的时候要选择binary模式,就是在get之前先输入binary,这样就可以了!
ftp> binary
200 Type set to I.
ftp> get hello /var/hello
local: /var/hello remote: hello
200 PORT Command successful.
150 Opening BINARY mode data connection for hello (28628 Bytes).
226 Transfer complete.
28628 bytes received in 0 secs (2862 Kbytes/sec)
ftp> !
Sash command shell (version 1.1.1)
/> cd var/
/var> ls
config empty hello lock log run tmp
/var> ./hello
./hello: Permission denied
/var> chmod 777 hello
本文介绍了一种在UCLinux环境下执行程序时遇到的BINFMT_FLAT:relocoutsideprogram错误,并给出了正确的解决方案,即在TFTP下载过程中选择Binary模式。
679

被折叠的 条评论
为什么被折叠?



