編譯Libmono
具體流程參考博文1,我就說說我做了些什么才編譯成功的,編譯成功之前踩了好多坑,相信你把我接下來說的幾點完成了,應該能編譯成功。
坑1,一定要在VM虛擬機上用ubuntu編譯,關鍵在build_runtime_android.sh這個文件
坑2,記得修改
修改/mono-unity-4.6/external/buildscripts/build_runtime_android.sh
約73行處:
具體參考雨松大神的博文,這兩地方一定要改
把-fpic -g -funwind-tables改成-fpic -O2 -funwind-tables
約152行處:
clean_build "$CCFLAGS_ARMv5_CPU" "$LDFLAGS_ARMv5" "$OUTDIR/armv5"clean_build "$CCFLAGS_ARMv6_VFP" "$LDFLAGS_ARMv5" "$OUTDIR/armv6_vfp"
改成
#clean_build "$CCFLAGS_ARMv5_CPU" "$LDFLAGS_ARMv5" "$OUTDIR/armv5"#clean_build "$CCFLAGS_ARMv6_VFP" "$LDFLAGS_ARMv5" "$OUTDIR/armv6_vfp"
添加解密代碼:
在/mono-unity-4.6/mono/metadata/image.c中找到mono_image_open_from_data_with_name(約1077行處),在函數頭部加入以下代碼
完成添加后得到如下圖所示:
.重點---修改 build_runtime_android.sh Line 113 ,改為:(這里之前沒改拖了我好久,我覺得是這里解決了我才編譯通過的)
坑3.記得下載哈,雖然我不知道為啥,但我都下載了,在ubuntu里面終端 sudo adt-get 這個命令來下載
對了,還有一個perl插件的問題,這個東西是什么我也不知道,反正編譯要用到。
沒安裝自己度娘去,反正樓主沒有安裝unbuntu自帶了。
下載相應庫。linux有個好處可以自動下載庫。sudo apt-get install (庫的名字)
如果出現如下提示表示程序被占用需要先關閉:
關閉命令為:
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock
注意RM后的空格
先全來一遍
ctrl+alt+T打開linux的終端。第一次打sudo的時候會讓你輸入密碼獲取root權限。不過你輸的時候密碼那里是不會顯示*的。你輸完了直接按回車就好。當時輸完了看下屏幕結果楞了一下,怎么沒輸進去,又輸了一遍還是沒有,還以為鍵盤出問題了。這里也糾結了一小會= =
sudo apt-get install autoconf
sudo apt-get install automake
sudo apt-get install libtool
sudo apt-get install git
sudo apt-get install bison
sudo apt-get install libc6-dev-i386(如果是64位的ubuntu需要下載這個和下面那個包)
sudo apt-get install lib32z1
下載完后就可以編譯了
把build_runtime_android.sh文件拖到根木錄去運行,具體參考博文1
說說為什么吧,
http://www.ithao123.cn/content-8713647.html這個大神博客中提到的有些問題你去看看吧,這些坑我做完以上幾點就沒有碰到過,感覺這些問題都是因為沒改東西還沒有配置好NDK才造成的
編譯過程終端會顯示進度條百分比,要是沒有出現先檢查你的NDK配置了沒有 ndk -build是檢查配置好沒有,下面是配置好的,不會配置看博客1或者百度去
接下來百分比過后就是刷刷刷一大堆,看不懂
成功之后是這樣的
可以看到 打包成功,lib在builds/embedruntions/android.
總結:
反正流程大概就是這樣,流程沒錯,因為每個人的編譯環境不一樣,照成很多坑,樓主也是按照以上博客一個個加,加各種庫,修改build_runtime_android.sh文件。
這個就是加密了,這個我是要用到熱更新的,但是后面以后研究,老大說告一段落了