在編譯Android代碼的時候,出現了
target thumb C++: libwebcore <= out/target/product/generic/obj/SHARED_LIBRARIES/libwebcore_intermediates/WebCore/XMLNames.cpp
target SharedLib: libwebcore (out/target/product/generic/obj/SHARED_LIBRARIES/libwebcore_intermediates/LINKED/libwebcore.so)
collect2: ld terminated with signal 9 [Killed]
make: *** [out/target/product/generic/obj/SHARED_LIBRARIES/libwebcore_intermediates/LINKED/libwebcore.so] Error 1
可是不管是 make clean & make ;或是同步git 代碼倉庫, 再make clean & make 都是徒勞。
這個問題可真是非常奇怪呀。
不過今天終於解決了。
最終的原因竟然是我的電腦太爛了... ,真是有點像那啥不出來,怪地球沒有吸引力那啥了。
不買關子,其實是我的Linux 系統沒加swap分區的原因。
因為工作後一直稟承 /boot 和 / 兩個分區的兩極世界觀,拋棄並鄙視學校時老老實實按著書上 swap 兩倍記憶體大, / , /usr, /usr/local, /var, ... 的世界多元論。現在終於吃到了苦頭。
說實話,之前雙分區的方法到是沒遇到什麼問題。最多是/用完了,再mount 上一個新的分區而已。
想不到,Fedora10 1G記憶體都編不了android呀, 不過Fedora6倒是能編過,不過是半年以前的代碼了。之前還懷疑是Fedora 編譯環境的問題,準備要裝ubuntu呢,哎..
解決的方法很簡單,建個swap檔案吧。
# dd if=/dev/zero of=/opt/other/swapfile bs=1024 count=512K
# mkswap /opt/other/swapfile
# swapon /opt/other/swapfile
# swapon -s
Filename Type Size Used Priority
/opt/other/swapfile file 524280 0 -1
OK了。make 圓滿成功。
target SharedLib: libwebcore (out/target/product/generic/obj/SHARED_LIBRARIES/libwebcore_intermediates/LINKED/libwebcore.so)
target Prelink: libwebcore (out/target/product/generic/symbols/system/lib/libwebcore.so)
target Strip: libwebcore (out/target/product/generic/obj/lib/libwebcore.so)