简短的回答: 号他们都根据上下文得到广泛应用.
答案很长:
取决于采用的问题以及其他因素.
例如,Apple使用LLVM(和Clang)来处理几乎所有事情,包括构建内核(以前使用GCC构建),引导加载程序和用户空间.除此之外,LLVM还用于图形驱动程序,用于将着色器编译为SGX USSE字节流,尽管这里主要是吃自己的狗食.
除此之外,LLVM还用于开源项目,例如在Mesa和用于JIT编译的Dolphin Emulator中.
除此之外,GCC仍然占主导地位,例如,Linux是使用GCC构建的,虽然已经尝试使用Clang + LLVM构建Linux,但它们更像是一种体验.除此之外,在嵌入式世界中,许多嵌入式应用程序(例如,UBoot和Little Kernel)依赖于GCC扩展提供的功能,并且完全无法使用Clang + LLVM构建,无法在编译到对象或链接阶段时失败.
然而,对于用户空间应用程序来说,这主要取决于个人(或贵公司的偏好),因为它们都提供了大致相同的功能集,包括SIMD支持和完全支持C++ 14和C11(尽管GCC有一些恼人的未解决的bug当谈到C++支持时,例如,Bug 61636).
代码检查技术主要由Clang提供,并且根据我的个人经验提供了大量的开销(例如在Qt Creator中,而在XCode中则较少).
| 归档时间: |
|
| 查看次数: |
1642 次 |
| 最近记录: |