在 Android 下也可以使用 V8 解析器。
本文描述的是在 linux 环境行编译 V8 源码,跟普通交叉编译类似,都是最终生成一个 .so 库或者 .a 库。
1、下载最新的NDK 8.0
http://developer.android.com/tools/sdk/ndk/index.html
解压后进入目录NDK,并设置CC环境
- export NDK=/home/ndk8.0/
- export SYSROOT=$NDK/platforms/android-14/arch-arm
- export CC="$NDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc --sysroot=$SYSROOT"
2、交叉编译V8
下载 v8 源码,进入 v8 目录执行如下命令。具体需参考实际的环境进行配置。
export CC=/usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-gcc
export CXX=/usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-g++
scons --clean
rm -rf ./shell
scons arch=arm os=linux mode=release library=shared sample=shell
如果发现编译过程中缺少头文件,则把在nkd目录下响应的文件,拷贝到响应的 $SYSROOT 目录下。$SYSROOT 是编译器指定的默认系统目录
3、生成得so库即可在其他jni库中调用。