关于Indroid的编译
你好。 最近在研究你的Indroid,也拜读了论文《An Automated Online Analysis Framework for Android》,论文上说,在4.0.x, 4.1.x和4.2.x都可以编译成功。我在4.0.4和4.2.2上尝试了一下,发现都不能成功。
我首先使用的使用4.0.4的源码,将Indroid中的源码替换过去,然后使用 make -j4 livdvm 进行编译,发现有的文件不存在,我查看了一下,发现4.2中的源码中存在,所以使用4.2.2在尝试一下。下载整个4.2.2的源码中之后,不编译整个系统,直接编译libdvm。 使用 make -j4 libdvm 又发现了新的问题。 报错如下: dalvik/vm/mterp/out/InterpC-portable.cpp: In function 'void dvmInterpretPortable(Thread*)': dalvik/vm/mterp/out/InterpC-portable.cpp:3313:1: error: array subscript is above array bounds [-Werror=array-bounds] dalvik/vm/mterp/out/InterpC-portable.cpp:3325:1: error: array subscript is above array bounds [-Werror=array-bounds] target arm C++: libdvm <= dalvik/vm/mterp/out/InterpC-armv7-a.cpp target thumb C++: libdvm <= dalvik/vm/AllocTracker.cpp target thumb C++: libdvm <= dalvik/vm/AtomicCache.cpp cc1plus: all warnings being treated as errors
请问我该使用那个版本? 我的系统:Ubuntu 12.04 64位 gcc 4.4.7 jdk:1.6.0
正确的版本是4.2.2 环境的话按4.2.2源码要求的 官网上应该有 有个编译选项似乎可以把warning不变成error的 你可以试下
在Dvm.mk去掉-Werror 可以解决。参考http://blog.csdn.net/typ9718/article/details/23449361。