BINFMT_FLAT: reloc outside program

本文介绍了一种在UCLinux环境下执行程序时遇到的BINFMT_FLAT:relocoutsideprogram错误,并给出了正确的解决方案,即在TFTP下载过程中选择Binary模式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值