编译一个可以在Android系统上运行的可执行程序

开发环境

系统环境:Ubuntu14.04
 
交叉编译器
arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
arm-none-linux-gnueabi-gcc 

 arm各个版本下载地址

 

操作流程

 
解压 armCd  解压目录/bin

 

执行下面的编译命令,这里采用的静态链接

~/桌面/arm-2014.05/bin$ ./arm-none-linux-gnueabi-gcc  -static /home/webrtc/桌面/udpclient.c -o /home/webrtc/桌面/udpclient

 

在桌面生成一个可执行文件,拷贝到root过的Android设备上
 adb push C:\Users\pactera\Desktop\udpclient /data
 
adb shell
cd /data 进入到可执行文件所在目录
 
chmod 777 ./udpclient 修改权限
 ./udpclient 192.168.1.189 9788 执行程序
 

 


没有采用静态链接遇到的错误

Android设备上执行程序提示如下命令
/system/bin/sh: ./executer: No such file or directory

 

分析原因
进入到ubuntu系统
readelf -l udpclient 查看可执行文件的信息

 

可以看到需要ld-linu.so.3动态库文件
 
但我们的Android系统没有这个目录和文件
所以需要采用静态链接生成可执行文件
再查看经=静态链接生成的可执行文件,发现不需要这个静态库了


 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值