跳至内容
- 编译选项:Clang 和 GCC在很多编译选项上是相似的,因为 Clang 旨在与 GCC 兼容。MSVC的选项一般以/开头 ,和普通DOS命令选项类似,clang和gcc按照Unix命令选项-或者--开头。
- 跨平台:Clang和GCC是跨平台的,可以在多种操作系统上使用,包括Linux、macOS和Windows等。MSVC只用于Windows平台。Clang和GCC兼容性很好,Makefile移植心智负担小,到Windows平台就需要注意选项差异。
- 语言标准支持:MSVC较新版本才对C99有较完整支持,对C11/C17支持不是很好,VS2022默认依然主要是C90(额外附带一些C99 feature和MSVC特性). Clang和GCC支持就更好一些,最新版本支持更新的C标准。MSVC对C++标准支持比Clang和GCC都快,对C++20支持更好。
- 错误提示:Clang在错误信息和警告方面做得很好,能够提供更清晰、更精确的错误提示。
- 支持语言:GCC支持的语言最多,因为它已经变成前端了,除了C/C++/Obj C/C++语言,Fortran、Ada等都在支持之列,早期也支持Java,后来逐渐Phase out.