为android构建可执行文件
我正在尝试为android构建一个hello world可执行文件。 我的测试c:为android构建可执行文件,android,android-ndk,android.mk,Android,Android Ndk,Android.mk,我正在尝试为android构建一个hello world可执行文件。 我的测试c: #include <stdio.h> #include <stdlib.h> int main() { printf("Hello World\n"); return 0; } My Application.mk: APP_ABI := all 我运行了ndk构建,在libs-arm64-v8a-armeabi-armeabi-v7a-mips-mips64 x86
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("Hello World\n");
return 0;
}
My Application.mk:
APP_ABI := all
我运行了ndk构建,在libs-arm64-v8a-armeabi-armeabi-v7a-mips-mips64 x86 x86\u 64中的各个目录中得到了7个可执行文件
当我运行file命令时,我得到了
hello_world: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked (uses shared libs), stripped
但当我将其推送到adb shell并执行时,我得到一个错误:
not executable: magic 7F45.
我应该怎么做才能让它工作?ndk代表本机开发工具包。该术语在中用于指用于将独立于平台的代码(如java)与本机代码进行接口的工具 在Android上下文中,ndk指用于将Android java代码与本机代码进行接口的工具 在所有情况下,接口将由平台无关的代码调用某种库 因此,ndk build与仅具有库标志(例如:LOCAL_MODULE)的一起使用,并且只生成库,因为它们适合于此目的
对于静态可执行文件,您必须更直接地使用bona fida make文件。ndk代表本机开发工具包。该术语在中用于指用于将独立于平台的代码(如java)与本机代码进行接口的工具 在Android上下文中,ndk指用于将Android java代码与本机代码进行接口的工具 在所有情况下,接口将由平台无关的代码调用某种库 因此,ndk build与仅具有库标志(例如:LOCAL_MODULE)的一起使用,并且只生成库,因为它们适合于此目的
对于静态可执行文件,您必须更直接地与bona fida make文件一起使用。NDK用于构建库,而不是独立的可执行文件。那么为什么首先要选择包含$(BUILD\u executable)的选项?库或可执行文件是相同的。请参阅Wikipedia中的格式类型。NDK用于构建库,而不是独立的可执行文件。那么,为什么首先要选择include$(BUILD\u EXECUTABLE)呢?库或可执行文件是相同的。请参阅Wikipedia中的格式类型。库so文件和可执行文件中都有机器可执行指令。库so文件和可执行文件中都有机器可执行指令。
not executable: magic 7F45.