Android可执行文件有错误的解释器?

时间:2017-03-23 11:21:56

标签: android android-ndk toolchain

我已经转移到新的笔记本电脑和最新的Android NDK,将二进制文件重新编译到我的Android应用程序中并且找不到可执行文件"运行时异常。我已检查文件是否存在且位于预期路径上。

然后我分析了该文件,得到了以下内容:

ls -t | head -n1

然后我检查了以前版本的可执行文件,它是:

$file ./build_pie/my_file
./build_pie/my_file: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /usr/lib/libc.so.1, not stripped

我认为错误的翻译就是原因。我该如何解决?

PS。

以下是config中的一些行:

$file /tmp/f4_old/my_file
/tmp/f4_old/my_file: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /system/bin/linker, not stripped

2 个答案:

答案 0 :(得分:1)

我必须使用-Wl,--dynamic-linker=/system/bin/linker(添加到LDFLAGS

指定动态链接器

答案 1 :(得分:-1)

根据您的回答,您已经完成了组装交叉编译器以便与autoconf一起使用的所有工作。你应该看看standalone toolchains,这是NDK提供的工具,可以帮你避免这些错误。