使用NDK编译mono

Posted ljbguanli

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用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环境编译。

 

 

以上是关于使用NDK编译mono的主要内容,如果未能解决你的问题,请参考以下文章

在Linux环境下使用NDK编译FFmpeg

使用NDK(r20)编译FFmpeg

如何使用android的ndk编译器 编译c++的库

使用 NDK 为 Android 编译 OpenALPR

使用Android Studio自带的NDK编译JNI

使用NDK编译mono