开发miniob是编译报错

【 使用环境 】wsl,win11
【问题描述】执行 miniob/docs/how_to_build.md的make -j 命令式报错
【问题出现前后相关操作】设置swap分区这是分区信息

【问题现象及影响】执行make -j报如下错误

1 个赞

大佬们解答详细一点,我刚入行一年

1 个赞

系统版本号在这里,
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04.1 LTS
Release: 22.04
Codename: jammy

1 个赞

我按照网上说的方法设置了swap为16g还是报错,设置命令如下

创建分区路径

sudo mkdir -p /var/cache/swap/

设置分区的大小

bs=64M是块大小,count=64是块数量,所以swap空间大小是bs*count=4096MB=4GB

sudo dd if=/dev/zero of=/var/cache/swap/swap0 bs=64M count=256

创建SWAP文件

sudo mkswap /var/cache/swap/swap0

激活SWAP文件

sudo swapon /var/cache/swap/swap0

查看SWAP信息是否正确

sudo swapon -s

看起来像是编译时内存不足。
make -j会按照当前的CPU个数来分配编译的线程个数,对当前的机器内存来说并发度太大,可能会导致内存不足。
可以尝试 make -j 4 或者其它参数,根据当前的机器调整编译并发度,最差使用make(相当于make -j1) 单并发编译。
通常不需要使用swap文件。
楼主的机器内存多少?

谢谢 使用了make -j 4后编译了50分钟,正常了

是编译GCC 50分钟?

对的,我以为不正常呢结果成功了

如果你用ubuntu 的话,默认安装的gcc版本应该已经够高了