Linux交叉编译(Android-NDK-r5)

71 篇文章 0 订阅

最近一段时间在做Kobo项目,主要是Android-ndk-r5的交叉编译,有一个已经写好了的程序库,但是呢,是用vc写的,而Android里面的Java是不能直接调用VC写的代码,所以我们需要将vc写的程序库交叉编译成Java能调用的.so动态链接库。

首先,是使用ubuntu10.0.4,刚刚开始的时候使用的是ubuntu8.10出现了很多的问题,是为版本太低。关联性太大了!遂使用ubuntu10.04.
在windows上装ubuntu10.0.4时,直接空出一个盘用来安装ubuntu,使用虚拟光驱,像windows中装一般软件一样安装。直至完成。
当安装完成ubuntu后,需要根据实际情况下载一些东西安装上去,对于Adroid-ndk,需要下载Java的linux版JDK。
然后将linux版本的Android-ndk-r5下载下来,然后解压就可以了。用自带的例子测试看是否成功。记住:在解压之后,需要在cd /etc/profile里面配置环境变量。到/etc目录下,sudo gedit profile打开后在最后配置环境变量:
ANDROID_NDK=/home/administrator/Android/android-ndk-r5
export PATH=$ANDROID_NDK:$PATH
如果需要配置动态连接库以及静态链接库也在这个地方。
注意:android-ndk-r1-----r3解压后,需要执行.sh文件。而android-ndk-r4----r5则不需要。

交叉编译:在交叉编译的时候,首先你需要修改Adobe_RMSDK的buile下的Makefile文件,配置相应的环境,OS=linux,ARCH=arm,TOOLS=android-ndk,android-ndk.tools是一个文件,用来配置编译路径COMPILER_PATH,系统库SYSTEM_LIB_DIR等,以及
CC=$(COMPILER_PATH)/$(TOOLCHAIN_LIB) -gcc
STRIP=$(COMPILER_PATH)/$(TOOLCHAIN_LIB) -strip
AR=$(COMPILER_PATH)/$(TOOLCHAIN_LIB) -ar
LINK=$(COMPILER_PATH)/$(TOOLCHAIN_LIB) -g++
还有一些CODEGEN_FLAGS+= -mfloat-abi=softfp -mfpu=vfp
INCLUDE_FLAGS+= -mfloat-abi=softfp-mfpu=vfp -I/home/administrator/Adobe_RMSDK/openssl/include
LIBRARY_FLAGS+= -L/home/administrator/Adobe_RMSDK/openssl
在build文件夹中还有一些其他的common.build,config.build文件,都是用来帮助编译的。project.make。
然后进入到build文件夹下,执行make -f Makefile编译VC的程序库。
注意:因为是交叉编译,最终是要用在Android手机上,所以,编译的时候使用的系统库不能是ubuntu的系统lib,而是Android-ndk-r5的平台库,如:android-ndk-r5下的platforms下的android-5里面的库。而vc的stl库则是在sources下面。toolchains是用来编译的,里面有gcc,g++等。

在编译中,如果出现XXXX没找到时,表示你的路径没包含在里面,或者没指对路径。


转贴:http://www.huomo.cn/developer/article-19310.html


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值