求指教:X86上交叉编译出的执行文件到ARM上执行失败,提示missing essential tablesCANNOT LINK EXECUTABLE

deepsmart 2016-05-18 11:11:32
开发机为X86+Ubuntu server 12.04, with Android NDK
目标机为运行Android4.0.3的ARM开发板,有root权限。

==============开发机 第1步 简单程序、以下是 aaa.c 内容================
===========================================================
int main(void) //最最简单的程序
{ int a = 3;
return 0;
}

===============开发机 第2步 编译OK、以下是 makefile 内容================
= 备注,该toolchain目录是通过Android NDK生成的 =
================================================================
GCC = /home/toolchain-API-15/bin/arm-linux-androideabi-gcc
CROSS_SYSROOT = /home/toolchain-API-15/sysroot
CROSS_CFLAGS = -I$(CROSS_SYSROOT)/usr/include -I.
CROSS_LDLIBS = -L$(CROSS_SYSROOT)/usr/lib -L.
$(GCC) aaa.c --sysroot=$(CROSS_SYSROOT) $(CROSS_CFLAGS) $(CROSS_LDLIBS) -o aaa

===============开发机 第3步 OK、检查aaa内容================
=======================================================
成功编译出的执行文件aaa,执行file aaa命令,显示
aaa: ELF 32-bit LSB executable, ARM, version 1 (SYSV),
dynamically linked (uses shared libs), not stripped

===================目标机 第1步、执行 FAIL ===================
=======================================================
从ARM开发板上通过ftp到开发机上get到文件aaa,改为可执行权限后,
执行aaa失败,显示
/home/test-arm # ./aaa
link_image[1908]: 2597 missing essential tablesCANNOT LINK EXECUTABLE
...全文
454 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
deepsmart 2016-06-10
  • 打赏
  • 举报
回复
引用 2 楼 xinzha 的回复:
是不是NDK跟你的Android的版本不符。
—— 试过不下6种交叉编译器的版本了,其中3种是ndk的不同版本的,都是老样子。 虽然,不是你说的这个原因,但是你是唯一愿意提供建议的热心人。
deepsmart 2016-06-10
  • 打赏
  • 举报
回复
编译参数换成静态链接,拿到开发板上跑也是不行,提示“illigal instruction”. 但是,同样的程序,在其他几台多核手机和平板电脑上都可以正常执行。 看样子只有两种可能性,要么是开发板的单核cpu太老(可能性较小,是三星的S5PV 210),要么是开发板的内核在编译时没有选择正确的cpu选项(可能性较大,因为是别的工程师搞过的开发板借我临时用用的) 没时间去玩内核编译了。果断放弃开发板,用root过的平板电脑来做后续测试了。
猪头三小队长 2016-05-27
  • 打赏
  • 举报
回复
是不是NDK跟你的Android的版本不符。
deepsmart 2016-05-18
  • 打赏
  • 举报
回复
link_image[1908]: 2597 missing essential tablesCANNOT LINK EXECUTABLE 按这个ARM的出错信息在网上搜,也没有什么有价值的帖子,包括国外的。 难道全世界只有我这的Android的NDK生成的toolchain干活不正常? 看来我得去买彩票了。

1,318

社区成员

发帖
与我相关
我的任务
社区描述
主要是开发驱动技术
社区管理员
  • 驱动程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧