Ubuntu18.04下编译mono-unity-2019.2-mbe
准备
环境:Ubuntu 18.04.4 LTS
Mono版本:mono-unity-2019.2-mbe
技巧:如果github速度慢,可以先拉到gitee上,之后到gitee上clone
注意:解压之后检查mono/external/bdwgc文件夹是否为空,是的话,到主干把bdwgc里面的内容全部down下来。
NDK版本:android-ndk-r16b-linux-x86_64
开始
1、卸载旧版本mono编译环境
sudo apt-get --purge remove mono-runtime
sudo apt-get autoremove
2、安装新版本mono编译环境 官网地址
sudo apt install gnupg ca-certificates
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb https://download.mono-project.com/repo/ubuntu stable-bionic main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
sudo apt update
sudo apt install mono-devel

3、安装必要的工具
autoconf automake libtool libtool-bin git cmake python
4、为了方便后面执行脚本,获取mono文件夹权限:
sudo chmod -R 777 monodir

5、cd到mono/external/buildscripts下执行
./build_runtime_android.sh
<5.1>第一次执行的时候,会提示克隆mono-build-tools-extra这么一个文件,但貌似仓库已经没有这玩意儿了,这时直接Ctrl+Z强制结束就行了。

<5.2>接着再build一次会download roslyn-csc-linux,但一直busy,还是Ctrl+Z结束。

<5.3>将ndk解压到下面的路径
mono/external/buildscripts/artifacts/Stevedore/android-ndk-r16b
<5.4>将usr/bin目录下的libtool、libtoolize两个文件copy到下面的路径(无则新建)
mono/external/buildscripts/artifacts/Stevedore/built-tools/bin/
<5.5>再次执行
./build_runtime_android.sh
a few moments later...

release版本
默认编译出来的libmonobdwgc是debug版本,大小16M,是原版的3倍。

关于如何确定debug或release,可以用下面的命令查看
readelf -S libmonobdwgc-2.0.so
列出的信息中如果含有debug之类的就是debug版本库

网上有很多帖子里面都有如何编译release的方法,但这些方法在此mono中都不适用,估计是build.pl脚本有点问题,没有细看。
解决方案:先编译出默认的debug版本,然后手动strip,剥离掉debug部分。
查看build.pl可以发现android库的编译工具链在android-ndk-r16b/toolchains/arm-linux-androideabi-clang/bin
进入上面的目录,执行:
./arm-linux-androideabi-strip /home/shen/Desktop/build/libmonobdwgc-2.0.so
看到strip后的文件大小已经跟原版相仿了,并且其中已经没有debug之类的信息


把最终的libmonobdwgc替换到Unity安装目录,打个空包跑一下,暂无异常!

结束
导入加密代码,重新按照build流程来一次即可,过程不再赘述。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
