Firefly开源社区

打印 上一主题 下一主题

[小记]anroid下直接运行C程序

553

积分

1

威望

3

贡献

技术大神

Rank: 3Rank: 3

积分
553

[小记]anroid下直接运行C程序

发表于 2016-5-20 11:02:00      浏览:6343 | 回复:2        打印      只看该作者   [复制链接] 楼主
1,编辑一个简单的C程序,如:hello world
#include <stdio.h>
int main() {
    printf("hello world\n");


    return 0;
}
hello.c


2,使用交叉编译工具进行编译
/opt/gcc-linaro-arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc hello.c -o hello -static
-static选项在这里是必须的,否则会出现”not found”的错误。
然后就可以把编译好的hello传到手机上运行了。不过这里有个前提条件,要求android机器必须是root过的,好像简单的z4root还不行,必须使用更彻底的root方法,关于如何root,这里就不再赘述了,可以参考相关root的帖子。


3,把hello发送到android设备
    a,可以使用adb push把hello发送到设备上
    b,可以通过U盘,把hello拷贝到设备上。(具体过程可能需要参考另一篇挂载U盘的帖子)


4,adb shell,登陆到设备上
找到hello文件,./hello执行即可

回复

使用道具 举报

273

积分

0

威望

0

贡献

技术达人

Rank: 2

积分
273
发表于 2016-5-20 12:46:15        只看该作者  沙发
并非如此,就算没有root,就算没有加-static(也就是用动态编译),也可以跑。
例如apktool手机版,就成功把动态编译的openjdk移植到了安卓上。
回复

使用道具 举报

553

积分

1

威望

3

贡献

技术大神

Rank: 3Rank: 3

积分
553
发表于 2016-5-23 10:30:10        只看该作者  板凳
pqy 发表于 2016-5-20 12:46
并非如此,就算没有root,就算没有加-static(也就是用动态编译),也可以跑。
例如apktool手机版,就成功 ...

我编译出来的hello,就必须root,还再加-static才能用。你说的这个,我没有遇到过。多谢补充。:handshake
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表