Android build error

最近在编译更新过的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已经和内存一样大了

原文地址:https://www.cnblogs.com/flyme/p/2473051.html