gpt4 book ai didi

c - 如何使用 NDK 为 Android 设备 (ARM) 编译 C 代码?

转载 作者:太空宇宙 更新时间:2023-11-04 01:07:03 24 4
gpt4 key购买 nike

我需要执行以下步骤:

  • 用 C/C++ 编写一个简单的计数器,在溢出后不断 self 重置
  • 编译该代码并通过 ADB 将其推送到手机中
  • 通过 ADB shell 在后台将其作为常规可执行文件运行

如何使用 NDK 工具链编译上述 C 代码?我找到了几个类似的链接,但没有一个提供简单而完整的步骤。

如果有包含完整步骤的链接,请务必引用我的链接。

编译环境:Ubuntu,编译应该通过控制台而不是任何IDE来完成

最佳答案

你是对的,我犯了一个错误,我什至没有测试就给了我同样的错误,是由于“main”的入口点,因为这还没有改变了,但我希望这对你有用。无论如何检查符号表“nm”,实时执行“strace”,你甚至可以使用 gdbserver。

#include <stdio.h>
int main (int argc, char *argv[])
{
printf ("hello world");
return 0;
}


export NDK_ROOT=your_ndk_path
export PATH=$NDK_ROOT/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86/bin:$PATH
export CC=arm-linux-androideabi-gcc
export LD=arm-linux-androideabi-ld
arm-linux-androideabi-gcc -I$NDK_ROOT/platforms/android-18/arch-arm/usr/include -Wl,-rpath-link=$NDK_ROOT/platforms/android-18/arch-arm/usr/lib -Wl,-L$NDK_ROOT/platforms/android-18/arch-arm/usr/lib -Wl,-lc -o test test.c

If ld return with erros like "... ld: error: cannot open... : No such file or directory"
try this for your losed files:
ln -s $NDK_ROOT/platforms/android-18/arch-arm/usr/lib/crtend_android.o
ln -s $NDK_ROOT/platforms/android-18/arch-arm/usr/lib/crtbegin_dynamic.o

关于c - 如何使用 NDK 为 Android 设备 (ARM) 编译 C 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20559268/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com