建立铿锵永远

时间:2016-07-07 14:33:03

标签: clang

我感到困惑。我有一台运行Ubuntu 14.04的虚拟机。我已按照此处的程序:http://clang.llvm.org/docs/LibASTMatchersTutorial.html并且正在执行忍者的步骤。这构建了llvm和clang。现在,我的VM并不懈怠,我给了它6GB的RAM和4个CPU以及一个20GB的交换文件。最大的问题出现在链接时 - 它似乎启动了大量的ld进程,每个进程至少使用3-4GB或虚拟内存,并且在某些时候每个进程都有很多CPU。但是交换文件增长到超过12GB并且进程都是IO绑定的,但我不知道他们是在做一些有用的事情,还是吵架。我所知道的是磁盘正在受到重创,工作将永远持续下去。我实际上只是把CPU的CPU数量减少到了1,看看它是否可能更有效率和更少的并行性,因为我猜测问题可能是颠簸。

我想我的磁盘可能很慢......有什么想法吗?我应该使用make而不是忍者吗?我的专业知识不是Linux(虽然我到达那里:-))所以我按照教程进行了操作,但也许不推荐使用" best"构建clang / llvm程序的方法。

1 个答案:

答案 0 :(得分:5)

我一直在那里,它发生在最新的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验证了它(这个tutorial,我在步骤7修改了同样的东西)。这应该像我们一样。