我正在尝试为我的一加3T (LogoInjector)构建一个C二进制文件,它使用的是Snapdraon821,所以它是一个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中的所有其他权限一样
有人能帮我解决这个问题吗?
谢谢!
发布于 2017-01-14 06:36:09
-c
开关指示编译器执行仅编译步骤,跳过链接阶段,生成目标文件而不是可执行文件。调用
aarch64-linux-android-gcc -I android-ndk-r13b/platforms/android-24/arch-arm64/usr/include LogoInjector.v1.4.c -o lodepng
而不是命令。除了这些参数之外,您还可能需要指定一些链接器选项(如要链接的库)。
发布于 2019-04-09 10:53:43
我在尝试运行应用程序时遇到了这个问题。尝试运行命令:"file nameapp“。这就是我得到的:
ELF可执行文件,32位LSB,动态(/system/bin/linker),未剥离。
但是我的主板运行命令:“file system/bin/sh”
Android共享对象,64位LSBx86-64,动态(/
/bin/linker64),适用于Android27,BuildID=4a49062467e2958e78ce79839f483302,已剥离。
它不同,所以不能运行。如果你想运行它的话。使用x86-64获取该文件。
https://stackoverflow.com/questions/41644382
复制相似问题