吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3411|回复: 1
收起左侧

[Android 转帖] 解读:在命令情况下使用Android NDK交叉编译工具

[复制链接]
淡水中小红鱼 发表于 2015-10-29 11:12
我们知道,在Linux下可以使用gcc来把一份C代码编译成为Linux上的可执行程序, 如:
u=3839782397,3640584556&fm=21&gp=0.jpg
       $ 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=/

友情推荐: Android病毒或将渗透Linux内核驱动层






发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

3LLL 发表于 2015-12-5 15:35 来自手机
我用NDK交叉编译的时候提示缺少头文件怎么办,在本机编译则没事
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-15 13:11

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表