linux arm 运行 x86,ARM Linux可执行文件神秘地在x86_64上运行

我正在使用Docker容器( thewtex/cross-compiler-linux-armv7 )在Fedora 23 x86_64系统上交叉编译一个简单的“Hello World”Linux用户空间C程序。 目标系统是ARMv7embedded式系统(特别是带库存固件的Kobo Aura HD电子阅读器)。

程序的源代码( hello_world.c )如下

#include int main(int argc, char *argv[]) { printf("Hello World!\n"); return 0; }

我使用以下一组命令调用编译器

docker run thewtex/cross-compiler-linux-armv7 > ./dockcross.sh chmod +x dockcross.sh

出于某种原因,生成的shell脚本是错误的,我手动必须replace/cross-compiler-base/cross-compiler-linux-armv7/和/:build/:build:z/ 。 现在我跑了./dockcross.sh arm-linux-gnueabihf-cc hello_world.c -static -o hello

file返回有关生成的hello可执行file的以下信息

hello: ELF 32-bit LSB executable, ARM, EABI5 version 1 (GNU/Linux), statically linked, for GNU/Linux 2.6.32, BuildID[sha1]=317a9ea164931f614b24e98dec743050e2d7f900, not stripped

意外的是,我可以在主机系统上执行产生的可执行文件:

andreas@andreas-pc:~/tmp/test$ uname -a && ./hell

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值