编程文汇

windows10利用linux子系统编译mono

  1. 安装debian

    1. 系统设置中,启用开发者选项
    2. windows组件中,安装linux子系统组件
    3. app store中安装debian
  2. 安装编译工具

    1. 打开debian命令行
    2. sudo apt install build-essential zip unzip git bison
    3. sudo apt-get install git autoconf libtool automake build-essential gettext cmake python
  3. 下载相应的mono

    1. unzip到/home/xxxx-user
    2. 查看external/build/build-runtime-android.sh,查找ndk版本,这里是r10e
  4. 下载ndk

    1. 下载ndk的linux-x86_64版本
    2. unzip解压到/home/xxxx-user
  5. 设置ndk-root

    1. 修改external/build/build-runtime-android.sh
    2. 在前面添加 export ANDROID_NDK_ROOT=/home/xxx-user/ndk-r10e
    3. 修改CFLAGS -fpic -O2
    4. 修改KRAIT_PATCH_PATH="${CWD}/android_krait_signal_handler/build"
  6. 执行一次 编译

    1. 在mono根目录下执行 external/build/build-runtime-android.sh
    2. 这次不会成功
    3. 错误提示有可能在最开始,而不再最后(我一直再后面找错误,卡了很久)
  7. 修改android_krait_signal_handler/build/build.pl

    1. 把第一行中的 -w 去掉
    2. #use PrepareAndroidSDK; 这是注释掉,因为sdk校验在脚本中完成了,这里加上是冗余,而且会报错
    3. #PrepareAndroidSDK::GetAndroidSDK(undef, undef, "r10e"); 这里也注释掉
  8. 再次尝试编译,这次应该成功了,提示缺少什么,安装就行了。

    1. 在mono根目录下执行 external/build/build-runtime-android.sh