2022年8月14日01:30:44更新

【Unity3D】unity-mono编译libmono.so成功_两水先木示的博客-CSDN博客

2022年8月13日更新(目前看起来好像最接近可行的方案)

https://www.jianshu.com/p/b801a9b7cff8

博主使用的是编译环境 centos7.2_CHS_64
我使用uBuntu64位,进行

/root/tmp/mono-android/android_ndk/android-ndk-r13b/ndk-build clean
/root/tmp/mono-android/android_ndk/android-ndk-r13b/ndk-build

这2行结果显示都还可以,直到进行

perl build.pl

发生报错,ndk问题?目前尚不清楚是否是64位系统执行32位的linux ndk问题,可以尝试换32位ubuntu系统测试。(记录与2022年8月13日)
测试环境uBuntu64、mono 2017.4、ndk-r13b_x86_64编译mono库、ndk-r10e_x86单独编译android_krait_signal_handler库

最终卡死(看起来像是执行到一半就终止了,原因未知)


失败总结:

失败原因基本是我不会git的克隆,仅仅因为这个unity-mono库存在submodule(子库)导致卡进度,如果能成功完整克隆unity-mono库,按道理是挺简单就能完成编译libmono.so文件了。(谁能的话可以告诉我,这git它一个个去克隆子库可以,执行了autogen.sh时它又会去克隆一遍全部,这时候就会出现无法正常克隆情况,和我使用git submodule update的效果基本一致,卡死在cloning into xxx 或 fail connect github.com 或各种奇怪的bug 均是克隆submodule问题,可能有人说你手动自己一个个克隆完整不就行了吗?我试了但它这autogen.sh就是会有代码可能是内部的主动去调起了重新克隆子库的代码(目前不想找了 要改起来头皮发麻)。
        观察发现,仅有后来出现的Unity版本是存在子库的,Unity4.x或5.x 甚至Unity2017好像都没有submodule(子库)所以试手推荐选用没有submodule库的,网上基本上都是4.x或5.x都有成果,后面再试试4.x或5.x,测试下编译出来的libmono.so能不能给高版本的unity使用。

总之,真的是绝了~

目前还剩下一种方案就是直接使用镜像路径替换github.com(改gitconfig可以做到),就是不知道能不能克隆子库的时候也会生效了,目前进展是能够正常克隆子库了,但是速度是2KB/s龟速,而且我没有那种加速的小东西,等后续有条件可以尝试弄下。

本人环境介绍:
unity-mono分支:2019.4-branch-updates
ubuntu64位:ubuntu-18.04.1-desktop-amd64.iso
vmware:VMware® Workstation 15 Pro (15.5.0 build-14665864)
ndk: android-ndk-r16b (下载)

git clone --recursive -b 2019.4-branch-updates https://github.com/Unity-Technologies/mono.git

unity mono编译_hongjie98的博客-CSDN博客_使用unity 的mono编译器

window虚拟机:VMware Workstation (下载)
linux环境:Ubuntu 18.04.4 LTS (网易镜像下载)
Mono版本:mono-unity-2019.4-mbe(下载) 
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.listsudo apt update
sudo apt install mono-devel -y

这里我卡了很久,原因是镜像没有使用。镜像文章:https://blog.csdn.net/Piconjo/article/details/104660915

 用root权限打开这个sources.list文件添加如下镜像(网易)之后执行【如果这些镜像不行了你得找到一个可以加速的,注意不能全部都放进去,只能选一个】

sudo apt clean
sudo apt update

deb http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse

完成后再去执行上方的代码,基本就是sudo apt install mono-devel -y 这行命令下载的东西比较多(我发现还是慢,但不至于完全卡死,也有个100~300KB左右的速度,总之慢慢等吧 几个小时?)

3、安装必要的工具

sudo apt-get install autoconf automake libtool libtool-bin git cmake python

4、cd到mono根目录(mono-unity-2019.4-mbe解压出来的所在目录)

sudo ./autogen.sh
sudo ./make

可能会遇到报错信息:
configure.ac:434: error: installing './compile'; error while making link: Operation not supported
configure.ac:16: error: installing './missing'; error while making link: Operation not supported
ikvm-native/Makefile.am: error: installing './depcomp'; error while making link: Operation not supported
**Error**: automake failed.
 
需要将mono工程移出共享文件夹,比如放到根目录/lib下,Move To完成后再执行上方命令。


失败!失败!又TM的失败了!

无论是windows还是ubuntu系统,执行到关键的./autogen.sh代码时,均会进行一次git克隆子库,也就是.gitmodules文件的内容,大概有十几个子库,而且子库内部也有子库,这些克隆子库的地方在windows系统是fail connect github.com(改镜像路径好像也是一样的),ubuntu系统就是另一个报错(但不是所有都无法clone只有部分会)就是fatal: The remote end hung up unexpectedly我从网上了解到的方法统统都不行,后面搞了那些后还报错了一个新的libtoolize:   error: copying '/usr/share/libtool/build-aux/ltmain.sh' to './' failed
总之基本上可以告别安卓加密了,网上的所有安卓加密目前均已尝试,后面有心情再玩玩了,感觉用途不大li2cpp打包就是一层加密了。


如果上面的你都成功了,没有任何报错,那恭喜继续下面的步骤 这些都是网上的 按道理是目前我能搜到比较高级版本的,很多编译libmono.so都是unity5.x版本的东西,太老了。

5、到mono/external/buildscripts目录下
        1)修改build.pl 中 my $existingMonoRootPath='/usr/lib/mono'
        2)将ndk解压到下面的路径:artifacts/Stevedore/android-ndk-linux-x86_64/android-ndk-r16b
        3)检查extrnal目录下的bgwgc、boringssl、roslyn-binaries是否是空的,如果是就到主干上单独下载,然后放到对应的目录内
        4)./build_runtime_android.sh
        
    6、编译出来的 libmonobdwgc-2.0.so 是debug版本 (PS:我是把编译处理的android文件夹拷贝到桌面 /home/admin/Desktop )
        1) 处理armv7 release版 cd 到ndk目录
            artifacts/Stevedore/android-ndk-linux-x86_64/android-ndk-r16b/arm-linux-androideabi-clang/bin
            ./arm-linux-androideabi-strip /home/admin/Desktop/android/armv7a/libmonobdwgc-2.0.so
            
        2) 1) 处理x86 release版 cd 到ndk目录
            artifacts/Stevedore/android-ndk-linux-x86_64/android-ndk-r16b/i686-linux-androideabi-clang/bin
            ./i686-linux-androideabi-strip /home/admin/Desktop/android/x86/libmonobdwgc-2.0.so

【Unity】安卓加密编译libmono.so成功失败记录(unity2017已成功编译)相关推荐

  1. Android + Eclipse + PhoneGap 2.9.0 安卓最新环境配置,部分资料整合网上资料,已成功安装....

    前言:最近心血来潮做了一个以品牌为中心的网站,打算推出本地服务o2o应用.快速开发手机应用,最后选择了phonegap,这里我只是讲述我安装的过程,仅供大家参考. 我开发的一个模型http://www ...

  2. win10+vs2017配置mpi环境的记录(已成功)

    并行计算的课程需要动手实验,需要在电脑上使用mpi 使用mpi有两种选择:虚拟机搭建集群,vs多线程模拟多机. 搭建集群太麻烦,果断放弃.决定使用vs2017多线程环境,通过mpi进行并行计算实验. ...

  3. 错误代码大全【100(临时响应)】【200(成功)】【300(已重定向)】【400(请求错误)】【500(服务器错误)】(HTTP协议版本)

    最常出现的错误代码: 200(成功) 服务器已成功处理了请求.通常,这表示服务器提供了请求的网页. 400(错误请求) 服务器不理解请求的语法. 404(未找到) 服务器找不到请求的网页.例如,如果请 ...

  4. Mac 下编译 libmono.so 和 DLL 加密详解

    Unity 打出的安卓包为了防止反编译,需要对 Assembly-CSharp.dll 加密处理.Assembly-CSharp.dll 是由 libmono.so 运行时读取然后在 mono 虚拟机 ...

  5. 【Unity3D】unity-mono编译libmono.so成功

    目录 文章最终成功编译出libmono.so如下图所示,历时9天 一.下载文件配置环境 二.下载Unity-Mono库 三.正式开始编译libmono.so 1.libmono.so编译文件基础说明 ...

  6. unity app加密

    Unity3D现在很火.应用得场景很多.那么针对unity发布的程序如何加密呢? Unity3D程序的安全问题 代码安全问题 Unity3D 程序的核心程序集文件 Assembly-CSharp.dl ...

  7. 一次编译libmono.so的记录

    首先这篇文章参考的是: Unity3D-重新编译Mono加密DLL Unity3D研究院之Android加密DLL与破解DLL .SO(八十一) 接着说一下我自己编译的过程步骤 编译平台:虚拟机OS ...

  8. Unity - 游戏加密方案-DLL加密方法记录

    Unity - 游戏加密方案-DLL加密方法记录 DLL加密 Unity中的自定义脚本都会打包到Assembly-CSharp.dll这个DLL中,所以目前常见的游戏加密方案就是,用对称加密算法加密A ...

  9. Unity/VS/C#Unity工程加密授权开发---LicenseProj

    最近在发布Unity工程时要考虑给Unity加密的问题,但有关此类的文章很少,多数人推荐使用C#中的System.Management类实现,虽然Unity3d支持.net3.5架构,但是并不是所有功 ...

最新文章

  1. 作为导师,我希望学生在毕业后主动拉黑我
  2. oracle 数据 时间间隔,如何掌握 Oracle 中的时间间隔型数据
  3. 【H264码流分析】 SPS/PPS/Slice Header
  4. 11. 旋转数组的最小数字
  5. POJ 1191 棋盘分割(区间DP)题解
  6. 程序员生存指南:如何在技术浪潮中屹立不倒?
  7. php 中echo命令详解,DOS中的ECHO命令详解
  8. ASP.NET MVC 4 tutorial
  9. How to make an app
  10. VB2010(29)Web部署应用程序
  11. Word也能制作座位表?掌握这个技巧安排座位不慌乱
  12. MAML代码及理论的深度学习 PyTorch二阶导数计算
  13. 再谈OT算法的协同文档制作的底层基础架构记录
  14. oracle 11g dul,【学习笔记】Oracle DUL 11 兼容Oracle 12C数据库的DUL工具最新版本
  15. 小程序-demo:知乎日报
  16. ICANN近日将更改DNS信任密钥中的密钥对
  17. webservice wsdl2java_WebService学习笔记(三)wsdl2java代码生成
  18. WEB攻防-通用漏洞水平垂直越权购买逻辑漏洞
  19. android 兼容模式设置,天天安卓模拟器切换极速模式与兼容模式的方法
  20. C/C++ 全排列问题

热门文章

  1. vue_按需引入elment、echarts和路由懒加载,减少打包体积
  2. python cv2什么意思_cv2,CV2是什么意思
  3. 奢侈品电商,压死趣店的最后一根稻草?
  4. 网页中怎样在线播放音乐和视频
  5. Hexo-github日历图
  6. 光时域反射仪 具备哪些功能 推荐哪个品牌
  7. 开环放大倍数和闭环放大倍数的区别
  8. 熟练知道eclipse中outline里各个图标的含义
  9. dnf搬砖代码Python_让搬砖变得轻松——python操作excel用的脚本
  10. 服务器2003光盘修复,将Windows安装到光盘上 修复系统故障简单轻松