編譯 Windows 版本的 Unity Mono(2017-03-12 20:59)


  上一篇說了如何編譯 Android 下的 mono,這里簡要說下編譯 windows 版本的 mono,就是 mono.dll,Unity 版本只有一個 mono.dll,官方的 mono,好幾個可執行文件。由於一開始用了 mingw 和 msys 編譯的 android 版本,所以我變順其自然的也是用這個環境編譯。

  我分辨嘗試和修改了 external/buildscripts 下面的:build_runtime_win.pl, build_runtime_win64.pl, build-mingw32.sh 等,其中包括了從 Unity-Technologies/monobuildtools 下載后合並修改的各種腳本。總之是各種失敗。

  后來我才使用本機安裝的 vs2015 打開了 msvc/mono.sln 進行編譯,但是依然是大部分編譯通過,卡在一些小錯誤怎么都解決不了。由於 mono.sln 是 vs2010 的項目,於是我就做最后的打算實在不行就放棄,安裝了 vs2010,然后最后所有編譯通過,但是鏈接失敗了,查閱了下資料是發現沒有安裝 sp1,是 vs 的 bug,安裝 vs2010 sp1 后,一切順利,可以編譯出 x86/x64位,分別位於:

  x86: buildsembedruntimes/win32/mono.dll

  x64: buildsembedruntimes/win64/mono.dll

  結論:直接安裝 vs2010 sp1 打開 msvc/mono.sln 直接編譯對應平台下的整個解決方案即可,mono 的編譯環境是比較復雜的,有很多編譯中動態生成代碼,就像 luajit。


 2017-07-09 更新:

  感謝 @ST 同學的提醒,在這里忘了說了,如果使用默認的 Debug 編譯,會出現 glib.h 找不到文件的依賴錯誤,但是 Release 能正常編譯通過,當時我也遇到了這個問題但是忘記在這里寫出來,我直接使用 Release 的結果去后續的工作了,看來還是會有人同樣在這里埰坑。至於具體的原因由於時間原因沒有仔細研究,如果有知道或者有挖掘過的同學請告知下。


免責聲明!

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



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