这次要把在机顶盒上运行的程序交叉编译到android平台运行, 机顶盒是mips的, 而android是arm的, 显然需要不同toolchain来编译。

于是下载了android的NDK, 缺少很多的头文件, 我的程序用到了 linux 系统的消息队列做进程间通信,消息队列相关的 <sys/msg.h> 不存在, 这就麻烦了。


决定下载arm 的 toolchain 来编译试试看。


通过下面的操作进行下载:

www.plugcomputer.org --> Download --> GPLUGD --> Tools Chain 找到下载地址为 :

http://www.plugcomputer.org/405/us/gplugd/tool-chain/arm-marvell-linux-gnueabi.tar.bz2


下载后解压到 /home目录, 然后设置环境变量,下来进行编译。


PATH="/home/arm-marvell-linux-gnueabi/bin/:$PATH"


./configure --host=arm-marvell-linux-gnueabi --target=arm-marvell-linux-gnueabi


还算顺利, 编译成功, 下来要移植到android上进行测试。


移植时先安装驱动 android_usb_windows, 驱动安装成功后, 插上USB口, 能自动认上USB口的android设备, 下来执行 adb.exe shell 进入shell环境。

然后执行 mount -o remount rw /

然后退出shell环境, 再执行 adb.exe push client /sdcard/client 即可成功, 否则会报错 Read-only file system 。


下来把程序上传到android设备, 执行, 提示 not found , 显然, 产生这个问题的原因是缺少动态库, 但是到底缺少那个, 又不能使用ldd 来查看, 是在是个问题啊,看来虽然都是arm的芯片, 但是android的工具链还是不一样啊, 此方法宣告失败。

具体原因未明, 还是得老老实实的通过NDK来编译。

更多相关文章

  1. 面向 Android* 设备的英特尔® USB 驱动程序
  2. Android应用程序打包签名、加固、二次打包(图形/命令行)
  3. Android应用程序的完全退出
  4. Android应用程序与SurfaceFlinger服务的关系概述和学习计划 .
  5. (20120722)(笔记004)android开发应用程序资源
  6. Building Your First App(创建你的第一个应用程序)
  7. 用Android Studio 运行ndk 程序
  8. Android机顶盒开发初级篇minicom的使用以及adb的简单使用
  9. (转帖)Android开发者应该如何推广营销自己的应用程序

随机推荐

  1. AndroidのCountDownTimer倒计时器
  2. Android(安卓)查询远程服务器的工具Query
  3. javascript获取Android设备版本信息(备忘)
  4. android 判断网络是否断开
  5. mtk android 配置mcp
  6. android 输出.txt 文本换行问题
  7. Android(安卓)重启应用代码
  8. android自动检测版本更新
  9. Writing a Hello-world Android(安卓)NDK
  10. targetSdkVersion 23以下6.0中调用checkS