2016-07-07 49 views
2

我很困惑。我有一台运行Ubuntu 14.04的虚拟机。我已经遵循了这里的程序:http://clang.llvm.org/docs/LibASTMatchersTutorial.html并且我正在运行忍者的步骤。这建立了llvm和clang。现在,我的虚拟机不是懒散,我给了它6GB的RAM和4个CPU和一个20GB的交换文件。最大的问题在于链接时间 - 它似乎启动了大量的ld进程,每个进程至少使用3-4GB或虚拟内存,并且每个进程都有很多CPU。但交换文件增长到超过12GB,进程都是IO限制,但我不知道他们是否正在做一些有用的事情或颠簸。我所知道的是磁盘正在遭受重创,而且这项工作永远持续下去。实际上,我已经把虚拟机的CPU数量降到1,看看它是否可以提高效率,减少并行性,因为我猜测这个问题可能是颠簸的。建筑叮当永远

我想我的磁盘可能会很慢...任何想法?我应该使用make而不是忍者?我的专业知识不是Linux(尽管我到了那里:-))因此,我正在学习本教程,但可能不建议构建clang/llvm程序的“最佳”方式。

回答

3

我一直在那里,这是发生在最新的SVN版本(但不是如果你得到叮当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步中修改了同样的东西)。这应该owkr作为weel。

+0

我还没试过,但这样做很有意义。我会标记为已回答。同时,我发现您可以在这里下载Ubuntu 14.04(以及其他许多平台)的所有代码的预构建映像:http://llvm.org/releases/download.html。这个链接(http://askubuntu.com/questions/306929/how-to-install-clang-using-precompiled-binaries)有关如何获取和安装它的细节,虽然我把它放在我的home文件夹中而不是/ USR /本地。所以我可以轻松删除或获取不同的版本。 –

+0

是的,你完全可以做到这一点。对于我来说,我必须得到最新版本,并从svn卡车中构建最新版本,因为在发布叮当3.8之后修复了一个错误。这对我与叮当的合作至关重要。 –