奇思妙想 · 2024年 3月 31日 0

如何获取编译器的版本号?

11 次浏览

C语言标准规定了不同版本的代号,但编译器自身的版本和C标准版本不是一个概念,C标准也不会为编译器规定版本号,这是厂商决定的。虽然通过命令行–version选项或者cl /?可以获取版本号,这不能在代码中判断,如下介绍一些编译器定义的版本宏。

  • MSVC
    _MSC_VER宏
  • GCC/MinGW/Cygwin
    __GNUC__: 主版本号。
    __GNUC_MINOR__: 次版本号。
    __GNUC_PATCHLEVEL__: 补丁级别。
  • clang
    __clang_major__: 主版本号。
    __clang_minor__: 次版本号。
    __clang_patchlevel__: 补丁级别。

CMake中可利用CMAKE_CXX_COMPILER_VERSION变量获取编译器版本。