首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在android-x86终端上运行C程序?

如何在android-x86终端上运行C程序?
EN

Stack Overflow用户
提问于 2017-01-20 09:55:09
回答 1查看 964关注 0票数 0

我必须用gcc在ubuntu中编译的C程序。我想在android终端上运行这个可执行文件。当我运行时,它显示的是“文件或目录找不到”或“不可执行:ELF32 32”。我想在android终端上运行代码。gcc是否有任何方式或标志,或使用任何其他编译器,以便我可以在android终端上运行我的代码。

EN

回答 1

Stack Overflow用户

发布于 2017-01-20 12:38:58

Android不使用与Ubuntu相同的系统库,因此不会被找到。

有两种解决办法:

  1. 复制你需要的图书馆。 如果您可以将它们放在Ubuntu中相同的文件系统位置,那么很好,否则您需要手动运行ld-linux.so,并告诉它在哪里找到库。或者,您可以重新链接程序,这样它就可以在一个非标准的地方找到动态链接器和库。您也可以使用chroot,但这需要根,并且您需要找到一个能工作的chroot二进制文件。
  2. 使用静态链接。 这通常意味着把-static传给GCC。您将得到一个更大的二进制文件,它应该是完全独立的,没有依赖关系。它要求所有库的静态版本都可以在构建系统上使用。另外,一些特性(如DNS查找)总是期望共享库,因此它们不会以这种方式工作。

即使如此,您也应该期望一些Linux特性不能工作。基本上,任何在/etc中需要硬件特性或配置文件的东西都需要付出很大的努力。有很多项目已经做到了这一点(搜索“”)。

我不知道“不能执行: tell 32”消息意味着什么,但是您应该检查您是在构建32位可执行文件还是构建64位可执行文件,以及Android二进制文件使用的是什么(file <whatever>应该告诉您)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41760684

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档