版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_29461259/article/details/53536300
开发环境
系统环境:Ubuntu14.04
交叉编译器
arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
arm-none-linux-gnueabi-gcc
操作流程
解压 arm包
Cd 解压目录/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系统没有这个目录和文件
所以需要采用静态链接生成可执行文件
再查看经=静态链接生成的可执行文件,发现不需要这个静态库了