from:http://music.573114.com/Blog/Html/942E/244932.html
最近在編譯更新過的4.0項目,之前都編譯的好好的,今天卻出現了下面的error:
target SharedLib: libwebcore (out/target/product/xxxx/obj/SHARED_LIBRARIES/libwebcore_intermediates/LINKED/libwebcore.so) collect2: ld 以信號 9 [已殺死] 退出。
看樣子是文件都已經編譯好了,只是在要去link庫的時候出錯,collect2: ld 以信號 9 [已殺死] 退出,像是內存不足;
先看了下webcore最近的幾次修改,只是很普通的代碼修改,沒有mk文件相關的變動,所以出問題的機率不大;
之後就懷疑是gcc編譯器的問題,看了下使用的gcc,版本是4.3,換成高版本試了一下,4.5和4.4都還是同樣的編譯錯誤;
所以最後懷疑,是自己的ubutu系統問題,collect2: ld 以信號 9 [已殺死] 退出,這裏的信號9我不太瞭解是什麼意思,網上查了一下,貌似是說數組過大,並不具體;我知道信號7錯誤是指內存太小,所以嘗試去看下內存;
free -m
root@desktop-ubuntu:~# free -m
total used free shared buffers cached
Mem: 1976 1916 60 0 718 523
-/+ buffers/cache: 674 1302
Swap: 256 0 256
汗啊,我的swap分區才256M,系統是用wubi裝的,swap分區是自動設置的,我一直用的好好的 ,沒出啥問題,就一直沒管,看來ubuntu裝完還是需要改下這個swap空間的。
我的內存是2G的,所以把swap空間提升到2G後,libwebcore順利編譯通過;
swap空間提升步驟:
1. cd /host/ubuntu/disks/
2. sudo swapoff swap.disk
3. sudo rm swap.disk
4. sudo dd if=/dev/zero of=swap.disk bs=1M count=2k (創建2G的swap, 這步比較慢)
5. sudo mkswap -f swap.disk
6. sudo swapon /host/ubuntu/disks/swap.disk (這步更慢,大概1分鐘不到)
至此運行free命令,應該看到swap已經和內存一樣大了