重新編譯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包。

  大功告成~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM