使用NDK编译mono
1.下载并安装ndk
2.导出NDK文件夹到环境变量
export NDK=/var/data/android-ndk-r10e
3.执行NDK的工具链
$NDK/build/tools/make-standalone-toolchain.sh--platform=android-18 --install-dir=/tmp/my-android-toolchain --arch=arm
4.导出编译环境
export NDK=/var/data/android-ndk-r10e
export PATH=/tmp/my-android-toolchain/bin:$PATH
export CC=arm-linux-androideabi-gcc
export CXX=arm-linux-androideabi-g++
export AR=arm-linux-androideabi-ar
export AS=arm-linux-androideabi-as
export CPP=arm-linux-androideabi-cpp
export LD=arm-linux-androideabi-ld
export RANLIB=arm-linux-androideabi-ranlib
export STRIP=arm-linux-androideabi-strip
export SYSROOT=$NDK/plarforms/android-18/arch-arm
6.进入mono源代码文件夹,配置
./configure --host=armv7-a-linux-androideabi--enable-minimal=profiler,logging --with-tls=__thread --with-monotouch=no--without-mcs-docs --with-sigaltstack=no --disable-mcs-build --enable-nls=no
make
make install `pwd`/temptree
注意:
这个版本号编译 链接的时候可能出现 mono_threads_core_get_stack_bounds 没有定义的引用问题,打开mono/utils/mono-threads-linux.c ,改动:
//#if defined(__linux__) &&!defined(PLATFORM_ANDROID)
#if defined(__linux__)
再次编译。能够完毕
在cygwin工具上编译mono可能出现某些文件不能找到的问题。建议在linux环境编译。