工具链支持C 11标准

前端之家收集整理的这篇文章主要介绍了工具链支持C 11标准前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我目前正在将我对C的知识更新为新标准.它让我觉得自己像个小孩子才能拥有最棒的玩具:我想一直玩它但我不想因为它而失去我的朋友.

我参与了一些开源项目,其中一些新功能非常有用,所以我非常热衷于使用它们.我的问题是有多少用户可以编译C 11代码,例如一般公众对C 11完整编译器的采用率是多少?有没有人有相关信息?

我知道gcc 4.8.1clang 3.3是C 11功能完整,但我不知道有多少人实际使用了最新的编译器.我知道大多数codemonkeys肯定会这样做,但普通的开源用户呢?拍摄潜在用户并告诉他们更新他们的编译器并不是一个真正的选择.

我知道这个问题可能因为与这些问题类似而受到批评/关闭

> How are you using C++11 today?
> To use or not to use C++0x features

我想指出现在情况有所不同,因为我们正在谈论一个实际批准的标准.我认为,在编程实践中,了解其采用率非常重要.

解决方法

您应该首先确定您绝对希望能够使用哪个C 11,然后在要支持的平台上查找支持功能的最低编译器版本. Apache拥有 a nice survey最早版本的每个主要编译器(gcc,clang,visual c,intel等),支持各种C 11功能.

根据我的经验,gcc 4.7和Clang 3.2几乎是完整的功能(除了继承构造函数之类的东西,它们很有用但不是游戏改变者).您可以使用gcc 4.6获得许多有用的功能(但是需要4.6.3版本以避免许多错误)或Clang 3.1,这很好,因为gcc 4.6也是官方的Android NDK编译器(如果您希望支持它) .

如果您希望支持Linux,可以查看DistroWatch,您可以在其中查看为每个发行版本安装的gcc版本.例如.许多基于Ubuntu的流行发行版已经在gcc 4.7上使用了将近一年,并且将在下一版本中升级到gcc 4.8.1(功能完整).

在Windows上,Nuwen Distro当前正在运行MinGW 4.8.1(仅32位且没有线程). Visual C不能胜任这项工作,需要一段时间(一年或更长时间?)来获得gcc 4.8和Clang 3.3所在的位置.

即使发行版没有正式支持最近的版本,也有private package repositories(通常由同样的人保持正式包装)提供最前沿的版本. LLVM项目甚至提供了启用许多C 14功能pre-built nightly SVN snapshots(在-std = c 1y模式下).对于gcc,没有夜间包装AFAIK.

关于强制开发人员升级编译器/发行版.我不认为这是一个大问题(但@ArneMertz关于首先咨询他们的观点,在这里非常好).安装虚拟机是轻而易举的(端到端约45分钟),因此如果您只想发布仅二进制产品,那么请继续.对于另一个问题的用户,如果您提供所有常规用户需要编译的仅标题模板库,那么这应该会使您在转换速度上更加保守.

原文链接:https://www.f2er.com/c/117965.html

猜你在找的C&C++相关文章