链接时GCC内存过载

时间:2018-07-07 13:59:37

标签: c++ linux gcc cmake clang

免责声明:请不要嘲笑我的机器。这是我在这个时间点上所能拥有的一切。

Legacy Bios Dell Mobo
Athlon II X4 640 Processor
4Gb DDR3 Ram
500Gb HHD

世界您好!在过去的一周中,我一直在尝试使用带有gcc的cmake / ninja或基础存储库中默认的clang版本来编译llvm / clang-tools。

每次尝试时,它们编译器崩溃,然后我又顽固地重新启动。最初,我一直在重新分区和重新安装Ubuntu,直到我添加了12Gb的交换分区,但是我的系统和不稳定的编译器无法完成工作。

我就停在那儿,决定在OS上尽我所能尽可能轻便再尝试一次(认为这样做可以使系统更稳定,膨胀更少)。我以最小的构建和动态交换文件安装了Arch Linux。没有放弃的想法,我继续编译。现在,我仍然遇到相同的内存过载,但是OS可以管理它,并且无需进行硬重启就可以启动进程。我认为这是朝正确方向迈出的一步。

来自Visual Studio,我是编译器标志的初学者。

这是我的构建:

默认为ccache。

$ cmake -G Ninja -DCMAKE_EXPORT_COMPILE_COMMANDS=ON ../llvm
$ ln -s $PWD/compile_commands.json ../llvm
$ ninja -j2 check-all

在单线程“ $ make .....”上仍然存在内存过载。

除了花费20美元来填充ram的最后2个位置(我的妻子确实允许我为我的生日做这件事)之外,像我这样的可怜的人还能做什么才能使用此宝贵的工具并返回编译我自己的C ++代码?

1 个答案:

答案 0 :(得分:0)

如果您确实需要最新和最强大的产品,可以使用clang / llvm的预打包版本(是吗?)。在这里查看Arch:https://aur.archlinux.org/packages/clang-svn/