这既是一个问题,也是一个参考,我希望人们可以在此基础上进行构建,以便具有类似问题的人员可以重用它。在编译期间检测编译器版本
我们如何可靠地检测到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)
Can an an yone完成此列表或提供完整列表的链接?也许我们也可以为其他编译器提供信息。
Visual Studio和Xcode都不是编译器 - 你不应该关心它们的版本。 – alternative 2010-08-28 22:52:07
@mathepic我和下一个人一样迂腐,但真的吗? VS为每个版本的IDE提供了特定版本的前端编译器,并通过_MSC_VER公开了该版本;这就是他想要的 – 2010-08-28 22:54:40
让我让自己清楚。是的,他们都是集成开发环境,但它们都与自己的编译器打包在一起,这正是我所说的。我希望从我的信息中清楚。 – Cthutu 2010-08-28 22:57:20