博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何在命令行下使用Android NDK交叉编译工具
阅读量:6074 次
发布时间:2019-06-20

本文共 885 字,大约阅读时间需要 2 分钟。

我们知道,在Linux下可以使用gcc来把一份C代码编译成为Linux上的可执行程序, 如:

$ gcc -o main.out main.c

而Android平台提供了NDK工具包来交叉编译可以运行于Android系统中的应用程序, 它需要我们编写 Android.mk来配置编译选项和编译目标, 那么, 能否也像gcc那样直接在命令行下编译呢?

答案是可以的, NDK只不过是把这个过程封装和抽象了而已, 我们完全可以直接调用 NDK 提供的编译工具链来编译我们的C代码, 方法如下所示(在命令行界面中执行):

1. 定义相关的目录(请修改为自己的相关目录)

$ export NDKROOT=/opt/android/android-ndk-r10

$ export SYSROOT=$NDKROOT/platforms/android-19/arch-arm

$ export GCC=$NDKROOT/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc

2. 编译代码

$ $GCC -o main.out main.c --sysroot=$SYSROOT

3. 执行程序

$ adb push main.out /data/local/

$ adb shell

$ /data/local/main.out

其核心思想其实很简单, 就是使用NDK提供的arm-linux-androideabi-gcc代替Linux下的gcc工具, 使用NDK提供的C头文件/库文件目录代替 Linux 下默认的目录, 其实, 使用gcc编译的时候默认的 sysroot设置为了本机的"/"目录, 等价于如下命令 :

$ gcc -o main.out main.c --sysroot=/

本文转自 Jhuster 51CTO博客,原文链接:http://blog.51cto.com/ticktick/1692489,如需转载请自行联系原作者

你可能感兴趣的文章
分页查询和redis
查看>>
windwos下开发的php上传至linux服务器下需要注意些什么问题?
查看>>
排序算法总结(四)快速排序【QUICK SORT】
查看>>
adb安装启动Touch校正软件
查看>>
内存泄漏的分析?
查看>>
[WinCE] [Win10] Win10 Creator 升级后 Windows Mobile Device Center 不能打开
查看>>
模拟spi如何写
查看>>
configparser配置文件模块
查看>>
POJ 3295:Tautology
查看>>
(转载)浅谈C#中的泛型
查看>>
Robotlegs一个基于puremvc的框架
查看>>
unity射线碰撞检测+LayerMask的使用
查看>>
[转]字符集编码常识
查看>>
【BZOJ1305】【CQOI2009】 dance跳舞
查看>>
Copy 方法 和 ostream 迭代器
查看>>
层中层事件问题
查看>>
用 strcoll 实现中文按拼音排序
查看>>
uwp
查看>>
阿里云
查看>>
随机生成数
查看>>