Android 无法执行 : 64-bit ELF file

标签 android c

我正在尝试为我的 Oneplus 3T (LogoInjector) 构建一个 C 二进制文件,它使用 snapdragon 821,因此它是一个 arm64 设备。

当我运行时:

android-ndk-r13b/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-gcc -I android-ndk-r13b/platforms/android-24/arch-arm64/usr/include -c LogoInjector.v1.4.c lodepng

并将编译后的二进制文件复制到我手机上的/system/bin 我收到此错误:

sush: /system/bin/LogoInjector: not executable: 64-bit ELF file

我也尝试了 32 位工具链,但它给了我:

sush: /system/bin/LogoInjector: not executable: 32-bit ELF file

我将二进制文件的权限设置为 755,就像/system/bin 中的所有其他文件一样

谁能帮我解决这个问题吗?

谢谢!

最佳答案

-c 开关指示编译器执行仅编译步骤,跳过链接阶段,生成目标文件而不是可执行文件。调用

aarch64-linux-android-gcc -I android-ndk-r13b/platforms/android-24/arch-arm64/usr/include LogoInjector.v1.4.c -o lodepng

命令代替。除了这些参数之外,您可能还需要指定一些链接器选项(例如要链接的库)。

关于Android 无法执行 : 64-bit ELF file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41644382/

相关文章:

java - 如何保持前景图像的纵横比?

c - C 中的 token 粘贴

c++ - 如何将此代码从 C 更改为 C++

c - 让 ENTER 前进到 GTK3 输入字段中的下一个字段

c - C中的动态数组升序排序

c - 将 libcurl 包含到 Microsoft Visual Studio 2015

java - 使用 Handler 从 TimerTask 更新 GUI

android - 如何设置图像矩阵的位置?

android - onSearchRequested() 不再适用于 Android 4.x+?

java - 在按钮上构建变量来触发监听器