Clang 建筑的叮当声永远不会消失

Clang 建筑的叮当声永远不会消失,clang,Clang,我很困惑。我有一个运行Ubuntu 14.04的虚拟机。我遵循了这里的程序:我正在运行忍者。这将构建llvm和clang。现在,我的虚拟机并不是无精打采的,我给了它6GB的RAM和4个CPU以及20GB的交换文件。最大的问题出现在链接时——它似乎启动了大量的ld进程,每个进程至少使用3-4GB或虚拟内存,并且在某些时候每个进程都需要大量CPU。但是交换文件的容量增加到了12GB以上,进程都是IO绑定的,但我不知道它们是否在做一些有用的事情,或者说是在做一些错事。我所知道的是磁盘正在被敲打,作业将

我很困惑。我有一个运行Ubuntu 14.04的虚拟机。我遵循了这里的程序:我正在运行忍者。这将构建llvm和clang。现在,我的虚拟机并不是无精打采的,我给了它6GB的RAM和4个CPU以及20GB的交换文件。最大的问题出现在链接时——它似乎启动了大量的ld进程,每个进程至少使用3-4GB或虚拟内存,并且在某些时候每个进程都需要大量CPU。但是交换文件的容量增加到了12GB以上,进程都是IO绑定的,但我不知道它们是否在做一些有用的事情,或者说是在做一些错事。我所知道的是磁盘正在被敲打,作业将永远运行。事实上,我刚刚将虚拟机的CPU数降低到1,以查看它是否可以在并行性较低的情况下更高效,因为我猜测问题可能会严重


我想我的磁盘可能会很慢。。。有什么想法吗?我应该用make而不是忍者吗?我的专业知识不是Linux(尽管我正在学习:-),所以我遵循教程,但这可能不是构建clang/llvm程序的“最佳”方法

我曾经去过那里,最新的svn版本(但如果您使用的是clang 3.8或更旧的版本,则不会)。所发生的事情是,由于在开发过程中,每个编译单元都会生成大量调试信息,因此文件大小变得越来越大

解决方案是关闭默认情况下附加的所有调试信息。您可能不会调试clang,因此不需要它。因此,与其只是这样做

cmake -G Ninja ../llvm -DLLVM_BUILD_TESTS=ON
你应该做的是

cmake -G Ninja ../llvm -DLLVM_BUILD_TESTS=ON -DCMAKE_BUILD_TYPE=Release

所有其他步骤保持不变。现在我还没有用忍者来测试,但已经用ubuntu上的make验证过了(我在第7步中修改了同样的东西)。这应该是weel。

我还没有尝试过,但这很有意义。我会记下答案的。同时,我发现你可以在这里下载Ubuntu 14.04(和许多其他平台)所有代码的预构建图像:。此链接(关于如何获取和安装它的详细信息,尽管我把它放在我的主文件夹中而不是/usr/local。因此我可以轻松地删除或获取不同的版本。是的,你完全可以这样做。对我来说,我必须从svn truck获取最新版本并构建最新版本,因为在发布clang 3.8之后进行了错误修复。这对我的工作至关重要。)使用clang。太棒了!解决了我在clang 9上的问题。有趣的是,无论它生成什么类型的信息,都是通过一个线程完成的!!所以我的CPU util大约是25%。我所能做的就是盯着显示器看两个小时左右,即使我在zfs strip config中有2xSSD。无论如何,谢谢你的提示