C/C++怎样通过预定义宏识别编译器名称和版本

来源:互联网 发布:查询域名对应的ip地址 编辑:程序博客网 时间:2024/05/17 03:06

怎样识别名称:

#if defined(__clang__)/* Clang/LLVM. ---------------------------------------------- */#elif defined(__ICC) || defined(__INTEL_COMPILER)/* Intel ICC/ICPC. ------------------------------------------ */#elif defined(__GNUC__) || defined(__GNUG__)/* GNU GCC/G++. --------------------------------------------- */#elif defined(__HP_cc) || defined(__HP_aCC)/* Hewlett-Packard C/aC++. ---------------------------------- */#elif defined(__IBMC__) || defined(__IBMCPP__)/* IBM XL C/C++. -------------------------------------------- */#elif defined(_MSC_VER)/* Microsoft Visual Studio. --------------------------------- */#elif defined(__PGI)/* Portland Group PGCC/PGCPP. ------------------------------- */#elif defined(__SUNPRO_C) || defined(__SUNPRO_CC)/* Oracle Solaris Studio. ----------------------------------- */#endif
编译器名称宏:
Compiler name macrosMacroClang/LLVMGNU GCC/G++HP C/aC++IBM XL C/C++Intel ICC/ICPCMicrosoft  Visual StudioOracle Solaris StudioPortland  PGCC/PGCPPCC++CC++CC++CC++CC++CC++CC++CC++__clang__yesyes              __GNUC__yesyesyesyes    yesyes      __GNUG__ yes yes     yes      __HP_aCC     yes          __HP_cc    yes           __IBMC__      yes         __IBMCPP__       yes        __ICC        yesyes      __INTEL_COMPILER        yesyes      _MSC_VER          yesyes    __PGI              yesyes__SUNPRO_C            yes   __SUNPRO_CC             yes  
怎么识别编译器版本:
acroClang/LLVMGNU GCC/G++HP C/aC++IBM XL C/C++Intel ICC/ICPCMicrosoft  Visual StudioOracle Solaris StudioPortland  PGCC/PGCPPCC++CC++CC++CC++CC++CC++CC++CC++__clang_major__yesyes              __clang_minor__yesyes              __clang_patchlevel__yesyes              __clang_version__yesyes              __GNUC__yesyesyesyes    yesyes      __GNUC_MINOR__yesyesyesyes    yesyes      __GNUC_PATCHLEVEL__yesyesyesyes    yesyes      __GNUG__ yes yes     yes      __HP_aCC     yes          __HP_cc    yes           __IBMC__      yes         __IBMCPP__       yes        __ICC        yesyes      __INTEL_COMPILER        yesyes      __INTEL_COMPILER_BUILD_DATE        yesyes      _MSC_BUILD          yesyes    _MSC_FULL_VER          yesyes    _MSC_VER          yesyes    __PGIC__              yesyes__PGIC_MINOR__              yesyes__PGIC_PATCHLEVEL__              yesyes__SUNPRO_C            yes   __SUNPRO_CC             yes  __VERSION__yes yes     yesyes     yes__xlc__      yes         __xlC__      yesyes        __xlC_ver__      yesyes        

0 0
原创粉丝点击