Clang和LLVM - 发布与调试版本

Evg*_*eev 14 debugging configuration llvm clang building

这似乎是一个简单的问题,但需要花费大量时间才能弄明白......

构建LLVM + Clang说明中,提到了ReleaseDebug配置.调试版本是:

  • 调试LLVM/Clang本身,

要么

  • 调试您尝试使用Clang + LLVM构建的应用程序?

我最初假设前者,但后来(1)它是默认的,(2)我发现了多组指令,这引导我们构建调试模式,(3)我假设它会引起兴趣对于相对较小比例的用户 - 大多数人都希望使用 Clang + LLVM,而不是深入研究优化编译器设计的复杂性.

我只打算使用锵在地方GCC的充分利用,从我所听到的,更好的错误信息,但我需要调试它产生GDB下的程序.Clang的发布版本是否足够?

(请注意,Debug版本只有几GB,可能需要很长时间才能构建,所以我宁愿找出简单的方法.)

另外,在同一页面上,它说我应该指定ONLY_TOOLS="tools you need",但是哪个列表可供选择?

Oak*_*Oak 17

前者是正确的 - 如果要调试编译器,只需要在调试模式下构建LLVM和Clang.如果要调试生成的应用程序,则需要使用调试符号对其进行编译 - 即-g在构建程序时将标志传递给Clang - 无论在何种模式下构建LLVM和Clang,都会启用该标志.

因此,根据您的需要,您应该在发布模式下进行编译.

至于你的问题 - 为什么是默认值 - 我猜它是因为假设你想要运行它,你只需要获得一个预先构建的二进制文件,而不是下载和构建源代码.

另外,关于你潜入的最后一个问题 - 我相信它是指这个LLVM工具列表中的工具.