zoukankan      html  css  js  c++  java
  • 重新编译Unity Mono遇到的坑,大坑,巨坑!!!

      因为项目需要,要整一个DLL热更功能,本身也想对DLL进行加密,所以需要修改Mono的代码,并重新编译。参考了网上的教程后,决定在linux下做重编的工作。

      然而在实际执行的时候,一开始就碰到了巨大的坑,卡了我两天。如果你身边正好有对Linux非常熟悉的朋友,那么请他帮助你完成编译环境的部署是最好的。我们项目工程使用的是unity5.5,因此我去git上下了Unity-5.5的分支,这个分支充分证明了开源代码的坑爹之处,一会细说。

      首先我参考的是这篇教程,写的不错,也很详细。

      https://blog.csdn.net/qq_27772057/article/details/51945700

      我先去官网下载了Ubuntu17的64位版本,当中碰到过一些错误,最后卡死在了PrepareAndroidSDK.PM无法定位到@INT地址,网上看了一下是Perl模块的问题。尝试了很多方法一直无法解决。这个折腾了我一天时间。

      为了减少系统带来的影响,我决定重新下载32位Ubuntu16,果然比之前顺利了一点,但这次碰到的问题是C++编辑器无法读取二进制文件的问题。可能少了某个模块。前前后后参考了几十篇教程,把能改的都改了还是不行。不过我当时发现在mono文件根目录下有一个autogen.sh的文件,在编译之前跑一把这个文件,可以检测你当前的环境是否满足编译。这个很多教程都没有提到,我墙裂建议一定要跑。然而事实证明,就算检测通过了,也不一定能行。。。我就是案例,当时差点崩溃。

      关于Mono5.5版本开源代码可能存在的坑,推荐这两篇教程,有几处的改动。

      https://www.cnblogs.com/lijiajia/p/7822571.html

      http://csftech.logdown.com/posts/452269-android-unity-encryption

      就在我犹豫是否应该转战Windows的时候,又尝试了一下Cent OS,终于成功了。参考了这篇教程

      https://blog.csdn.net/yxq408576080/article/details/47779395

      需要注意的是,之前两个链接中有几处文件替换,CentOS教程中没有提到,这个要自己改一下。还有cpan下安装LWP模块,一定要确认好lwp-download是否可用;xshell其实不用安装,直接在终端输入相同的指令即可。

      我在编译的时候还碰到了Can't locate File/Copy/Recursive.pm in @INC的错误,这个只要在cpan下执行install File::Copy::Recursive即可,坑爹的perl官网导致我安装好几次失败。全部装完后,编译终于成功!

      最后可以参考雨松的

      http://www.xuanyusong.com/archives/3553?utm_source=tuicool

      编译release包。

      大功告成~

  • 相关阅读:
    有7g和2g的砝码各一个,怎样称可以3次把140g东西分为50g和90g???????
    中缀到后缀(一个例子)
    动态代理模式的使用
    代理模式用来初始化的延迟下载
    ReentrantLock Condition 实现消费者生产者问题
    Two Sum
    [leetcode]重建二叉树(先序和终须) 中序遍和后续
    (转载)旋转数组查找 最简洁方法 总结
    [不明觉厉] 下一个排列
    codeforces -- 283A
  • 原文地址:https://www.cnblogs.com/cangxw/p/8645043.html
Copyright © 2011-2022 走看看