android-ndk-r19c安装,【初体验】macos下android ndk交叉编译hello world,并拷贝到android手机上执行...

本文介绍了如何在Mac环境下安装旧版Android NDK(r14b)以找到缺失的交叉编译GCC命令,同时讲解了如何下载并使用最新版的ADB工具进行设备调试。通过编写并编译简单的Hello_World程序,演示了如何使用NDK进行交叉编译,并通过adb将程序推送到Android设备上执行。注意,调试需要root权限的手机和正确的sysroot路径。
摘要由CSDN通过智能技术生成

1.机器上以前安装了java 1.8(貌似android ndk不需要java)

2. 下载android ndk,版本是android-ndk-r14b

(比较奇怪,我下载了最新的android-ndk-r19c,里面找不到交叉编译的gcc命令 )

(同时还尝试了arm官网提供的gcc,但是这个版本缺乏对应的链接库:https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm)

1 wget https://dl.google.com/android/repository/android-ndk-r14b-darwin-x86_64.zip

2 unzip android-ndk-r14b-darwin-x86_64.zip

3 cd android-ndk-r14b/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin

写一个最简单的hello_world程序:

1 //hello.c

2 #include

3

4 intmain() {5 printf("hello,world!\n");6 return 0;7 }

编译和链接命令行:

arm-linux-androideabi-gcc -o hello_arm2 hello.c -pie -fPIC --sysroot=/Users/ahfu/code/android/android-ndk-r14b/platforms/android-22/arch-arm/

#注意 -pie这个参数要加,否则运行出现这样的信息

./hello_arm1"./hello_arm1": error: Android 5.0 and later only support position-independent executables (-fPIE).

3.下载android tools,使用里面的adb工具来执行:

wget https://dl.google.com/android/repository/platform-tools-latest-darwin.zip

(其他的平台请参考这篇帖子:https://www.xda-developers.com/install-adb-windows-macos-linux/)

unzip platform-tools-latest-darwin.zip

cd platform-tools

用数据线连接android手机到mac电脑,打开手机的USB调试模式。

adb的命令列表请看:https://developer.android.com/studio/command-line/adb?gclid=EAIaIQobChMIu4nq4oCE4gIVVT5gCh0hggytEAAYASAAEgILkvD_BwE

#以下是实操

adb devices

手机上显示是否允许USB调试,点击允许

adb root

adb push hello /data/data

adb shell

cd /data/data

chmod +x hello

./hello  #执行成功

注意:

1.一定要使用root过的手机

2.只有/data 和 /system/bin 目录有执行权限

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值