Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android ndk 如何在Android中运行*.o文件_Android Ndk - Fatal编程技术网

Android ndk 如何在Android中运行*.o文件

Android ndk 如何在Android中运行*.o文件,android-ndk,Android Ndk,我目前在Linux中用C编译了一组源代码,输出是一个*.o文件,它是一个目标文件。这可能会进行图像压缩。现在我想在Android中使用/测试它 这可能吗?我只尝试过Android NDK开发者端的NDK示例。没有任何关于如何做到这一点的参考资料 提前感谢,, Perumal您不运行对象代码文件*.o。您需要将其转换为可执行文件。为此,假设您使用的是GCC,您将运行GCC file1.o file2.o-o executable,它将一个包含file1.o和file2.o的双文件程序转换为一个名为

我目前在Linux中用C编译了一组源代码,输出是一个*.o文件,它是一个目标文件。这可能会进行图像压缩。现在我想在Android中使用/测试它

这可能吗?我只尝试过Android NDK开发者端的NDK示例。没有任何关于如何做到这一点的参考资料

提前感谢,,
Perumal

您不运行对象代码文件*.o。您需要将其转换为可执行文件。为此,假设您使用的是GCC,您将运行GCC file1.o file2.o-o executable,它将一个包含file1.o和file2.o的双文件程序转换为一个名为executable的可执行文件。

以.o结尾的代码通常不完整。例如,如果您的程序使用某个库在屏幕上打印某些内容,以生成可执行文件,则必须将编译后的代码.o文件与该库链接,以便在操作系统加载时,可执行文件知道将使用的所有代码。您可以使用诸如Linux中的ld或Android中的/system/bin/linker之类的链接器进行链接。在您的情况下,让gcc为您调用链接器更容易,正如Jalfor所指出的那样。

答案是肯定的。但是你必须做大量的工作才能看到它在Android上运行

1如果您是在Linux上编译,则表示正在为x86或AMD处理器构建目标文件或最终可执行文件。但大多数移动设备的手机上都有ARM处理器。因此,尽管您有一个可执行文件,但如果它不是为ARM Cpu构建的,您将无法在ANdroid中执行它。这正是安卓NDK所做的

2因此,我们必须为AndroidRM再次构建相同的代码,为此我们需要一个交叉编译器和您正在讨论的目标文件的源代码

3如果你有可用的源代码,你可以再做两件事

要将其包含在JNI文件夹中,请构建共享库,然后执行以下操作: 电话之类的。 将代码构建到一个executableNote中,您需要有main 在代码内部使用android NDK,然后在android内部使用 亚行。
现在您终于可以登录并检查结果了。如果有什么不清楚的,请一定告诉我。我不介意解释。谢谢..

嗨,Happy2帮助,谢谢你提供的信息。尝试了解如何使用android工具链进行编译。我以前下载过android源代码,因此在预构建文件夹下有工具链。试图找出如何使用它。在Android NDK中,你可以将工具链归档。我没有现成的BDK。但要搜索其中的文件夹工具链。您将看到arm eabi gcc等可执行文件。。。我不知道确切的名字。但这些是您需要使用的可执行文件。无论gcc在哪里,你都需要把手臂放在eabi gcc上。。希望你明白我想说什么。。。