iOS   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了visual-studio – 在编译期间检测编译器版本大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

这既是一个问题也是一个参,我希望人们可以在此基础上进行构建,以便有类似问题的人可以重复使用它. 我们如何可靠地检测特定版本的C/C++ / ObjC编译器?现在我知道Visual studio的答案,并且部分知道Xcode的答案. 现在对于Visual studio编译器,我们有_MSC_VER,它是用这些值定义的: Version 1.0 800 Version 2.0 900 V
这既是一个问题也是一个,我希望人们可以在此基础上进行构建,以便有类似问题的人可以重复使用它.

我们如何可靠地检测特定版本的C/C++ / ObjC编译器?现在我知道Visual studio的答案,并且部分知道Xcode的答案.

现在对于Visual studio编译器,我们有_MSC_VER,它是用这些值定义的:

Version 1.0    800
Version 2.0    900
Version 2.x    900
Version 4.0    1000
Version 5.0    1100
Version 6.0    1200
Version 7.0    1300
Version 7.1    1310
Version 8.0    1400  (Visual studio 2005)
Version 9.0    1500  (Visual studio 2008)
Version 10.0   1600  (Visual studio 2010)
Version 11.0   1700  (Visual studio 2012)

现在对于Xcode编译器,我们有这个定义:

__APPLE_CC__

但我通过谷歌找到的唯一值(Mac文档似乎没有这些值)是:

Xcode 3.0              5465
Xcode 3.1              5470
Xcode 3.1 (GCC 4.2)    5553
Xcode 3.2.3            5664  (Got this value from my own compiler)

任何人都可以填写此列表或提供完整列表的链接吗?也许我们也可以为其他编译器提供信息.

解决方法

作为一个移植了超过他的公平份额’C’的人,我可以看到你来自哪里,所以这里有一些让我们开始:

对于IBM CL / C编译器产品:

__xlc__  - Format is V.R.m.F eg: "9.0.0.0"
__IBMCPP__ Format is an Integer as VRM eg: V9.0 is 900
__IBMC__ - Format is an Integer as VRM,which inDicates the level of compiler as VRM as:
< 200 is C Set/2
< 300 is C Set++
otherwise is Visual Age C++ V.m.C

           where V=version,M=release,M=modification and F=fix level.

对于Borland C:

___BORLANDC__ ??

对于GNU C:

__GNUC__ ??

对于Watcon C:

__WATCOMC__

大佬总结

以上是大佬教程为你收集整理的visual-studio – 在编译期间检测编译器版本全部内容,希望文章能够帮你解决visual-studio – 在编译期间检测编译器版本所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。