make collect2: ld terminated with signal 9 错误解决办法

Posted echo579

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了make collect2: ld terminated with signal 9 错误解决办法相关的知识,希望对你有一定的参考价值。

原因:

  signal 9 错误是由于交换区空间不足导致,扩展交换区大小即可

 

  解决方法搬运自http://www.361way.com/increase-swap/1957.html

  增加swap大小的方法有两种,一种是已经分过swap交换分区,不过分配不合理,所以可以通过增加swap文件来增加交换分区的大小;另一种方法是通过增加swap分区大小来增加swap的大小。

 

方法一、通过swap文件增加:

  1、创建交换文件

[[email protected] ~]# dd if=/dev/zero of=/tmp/mem.swap bs=1M count=4096
4096+0 records in
4096+0 records out
4294967296 bytes (4.3 GB) copied, 59.694 seconds, 71.9 MB/s

  当然根据bs指定的大小不同,我们也可以通过下面的文件增加:

dd if=/dev/zero of=/tmp/mem.swap bs=1M count=4096 (增加4G)或
dd if=/dev/zero of=swapfile bs=1024 count=1048576  (增加1G) 

  2、查看当前分区的大小

[[email protected] ~]# free -m
             total       used       free     shared    buffers     cached
Mem:           993        962         31          0          2        702
-/+ buffers/cache:        257        736
Swap:         2015          0       2015

  3、格式转换并挂载

[[email protected] ~]# mkswap /tmp/mem.swap
Setting up swapspace version 1, size = 4294963 kB
[[email protected] ~]# swapon /tmp/mem.swap 

  4、三种确认是否增加成功的方法

[[email protected] ~]# swapon -s
Filename                                Type            Size    Used    Priority
/dev/mapper/VolGroup00-LogVol01         partition       2064376 124     -1
/tmp/mem.swap                           file            4194296 0       -2
[[email protected] ~]# free -m
             total       used       free     shared    buffers     cached
Mem:           993        967         26          0          4        703
-/+ buffers/cache:        259        734
Swap:         6111          0       6111
[[email protected] ~]# cat /proc/swaps
Filename                                Type            Size    Used    Priority
/dev/mapper/VolGroup00-LogVol01         partition       2064376 124     -1
/tmp/mem.swap                           file            4194296 0       -2

  以上不难看出,第一、三两种方法效果相同。linux/unix的一个奇妙之处也在此,很多命令和直接查看某些文件或更改某些文件的值,效果是一样的。

 

  以上操作,在系统重启后,swap文件的大小又会变回原大小,我们可以在/etc/fstab里增加下面的配置,使其重启后,我们刚刚的配置仍然有效。

/tmp/mem.swap             swap                    swap    defaults        0 0

  如果想卸载掉上面的分区,可以通过swapoff完成

[[email protected] ~]# swapoff /tmp/mem.swap 

 

方法二、通过fdisk增加swap分区

  该方法和方法一主要操作步骤大同小异。不过该方法要求硬件目前有未分配的空间。

  1、我们先通过fdisk新增分区

fdisk  /dev/sda
Command (m for help): n

  通过n新建分区,选择为主分区,分区ID为82,即swap分区。保存退出。接着对新建的分区进行格式化并挂载

mkswap /dev/sda4
swapon /dev/swap

  完成后,参照方法一里的查看方法进行查看确认。新增完成后,在/etc/fstab里新增如下配置

/dev/sda4             swap                    swap    defaults        0 0

 

以上是关于make collect2: ld terminated with signal 9 错误解决办法的主要内容,如果未能解决你的问题,请参考以下文章

/usr/bin/ld: cannot find -lltdl collect2: ld returned 1 exit status make: *** [sapi/cgi/php-cgi] Err

Qt编译中出现collect2.exe:-1: 错误:error: ld returned 1 exit status

QT C++新手问题:collect2:ld returned 1 exit status

collect2:错误:ld 返回 1 退出状态,gcc

collect2:错误:ld 以信号 11 [分段错误] 终止,核心转储

collect2:错误:ld 返回 1 退出状态 graphics.h