Ubuntu18.04下编译mono-unity-2019.2-mbe

Liana ·
更新时间:2024-09-21
· 751 次阅读

准备

环境:Ubuntu 18.04.4 LTS

Mono版本:mono-unity-2019.2-mbe

技巧:如果github速度慢,可以先拉到gitee上,之后到gitee上clone

注意:如果是直接下载的zip包,解压之后检查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

第一次执行的时候,会提示克隆mono-build-tools-extra这么一个文件,但貌似仓库已经没有这玩意儿了,这时直接Ctrl+Z强制结束就行了。

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

将ndk解压到下面的路径

mono/external/buildscripts/artifacts/Stevedore/android-ndk-r16b

将usr/bin目录下的libtool、libtoolize两个文件copy到下面的路径(无则新建)

mono/external/buildscripts/artifacts/Stevedore/built-tools/bin/

 再次执行

./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版本中无一适用,具体原因不明。

解决方案:先编译出默认的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流程来一次即可,过程不再赘述。


作者:纯洁码农



ubuntu mono unity

需要 登录 后方可回复, 如果你还没有账号请 注册新账号