用NDK编译ACE在Android上运行

鉴客 发布于 2011/11/04 10:10
阅读 2K+
收藏 0

1.准备工具链

./build/tools/make-standalone-toolchain.sh --toolchain=arm-linux-Androideabi-4.4.3 --arch=arm --platform=android-9 --install-dir=../arm_tools

2.Create ace/config.h: #include "ace/config-Android.h"

3.Create include/makeinclude/platform_macros.GNU:
include $(ACE_ROOT)/include/makeinclude/platform_Android.GNU

4. 修改.bashrc文件,设置环境变量
export PATH=$PATH:/home/bsxy/arm_tools/bin
#export ACE_ROOT=/home/bsxy/ACE_wrappers

5. cd $ACE_ROOT/ace
make

6. 编译后的结果为静态库,需要自己在开发的 Android应用的jni中手动链入.

 其他:
 .实验用的 ace版本:ACE-6.0.5.tar.bz2
 .编译环境 Ubuntu 11
 .ndk:Android-ndk-r6b-linux-x86

 .经试验,使用Android8的工具链无法编译ace.

.在2.3版本的设备上测试可以正常运行

加载中
0
张卫民
你好,我最近刚好在android平台上用到了ace,非常感谢你的方法,我使用你一样的版本也编译成功了. 不过还有两个问题请教一下: 1.编译通过后再调用的时候,发现编译还会出错,如使用ace/task.h和ace_message_block对象都有方法无法识别。是否ace还需要设置特殊的编译开关? 2.ace编译出来的是静态库,因为我的工程很多,大多都引用了ace,所以编译出来的很多.so文件都很大。有没有办法将其编译成动态库,或者由没有其他方法解决我这种多工程引用造成的程序文件过大的问题?
返回顶部
顶部