【发布时间】:2018-05-24 20:59:16
【问题描述】:
我正在尝试将可执行文件从我的 Linux 机器 (Ubuntu) 复制到 Android 应用程序作为资产。我成功地将可执行文件移动到 Android 文件系统,但是当我尝试执行时,出现错误 'sh: not executable: 64-bit ELF file.' 我在可执行文件上运行了 file 命令,这是输出:
'ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so, for GNU/Linux 2.6.32 not stripped.'
当我在 Android 设备上运行的可执行文件上运行文件时:
'ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /system/bin/linker64, stripped.'
为了添加一点上下文,我正在尝试编译 this 程序。
我下载了 Android NDK 并运行以下命令来编译程序:
sudo ./configure --cc=/home/username/arm/bin/arm-linux-androideabi-gcc
sudo make
编译工作直到它开始链接,然后它会吐出这些错误:
/home/username/arm/bin/../lib/gcc/arm-Linux-androideabi/4.9.x/../../../../arm-Linux-androideabi/bin/ld: error: fio.o: incompatible target
/home/username/arm/bin/../sysroot/usr/lib/crtbegin_dynamic.o:crtbrand.c:function _start: error: undefined reference to 'main'
engines/net.c:318: error: undefined reference to 'inet_network'
engines/net.c:322: error: undefined reference to 'inet_network'
engines/net.c:323: error: undefined reference to 'inet_network'
engines/net.c:318: error: undefined reference to 'inet_network'
cgroup.c:28: error: undefined reference to 'setmntent'
cgroup.c:34: error: undefined reference to 'getmntent_r'
cgroup.c:45: error: undefined reference to 'endmntent'
collect2: error: ld return 1 exit status
Makefile:433: recipe for target 'fio' failed
make *** [fio] Error 1
我需要指定某个链接器吗?
【问题讨论】:
-
@Onik 我已按照您在该帖子中概述的步骤进行操作,但在构建项目时出现错误致命错误:找不到“aio.h”文件。代码中的大多数包含语句都会发生这种情况
-
我建议您提出一个新问题并描述新问题。
-
@Onik 我发布了问题here。