Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/143.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
哪个是最好的C++;编译程序? < C++编译器能产生一个不那么好的二进制吗?您可以在这里考虑输出的健壮性和性能。有没有“最佳”C++编译器使用的东西?如果不是,那么有哪些优点,当然,不是著名的编译器(G++,英特尔C++编译器,Visual C++等)的不太强(已知的bug和问题)点。_C++_Compiler Construction_Mission Critical - Fatal编程技术网

哪个是最好的C++;编译程序? < C++编译器能产生一个不那么好的二进制吗?您可以在这里考虑输出的健壮性和性能。有没有“最佳”C++编译器使用的东西?如果不是,那么有哪些优点,当然,不是著名的编译器(G++,英特尔C++编译器,Visual C++等)的不太强(已知的bug和问题)点。

哪个是最好的C++;编译程序? < C++编译器能产生一个不那么好的二进制吗?您可以在这里考虑输出的健壮性和性能。有没有“最佳”C++编译器使用的东西?如果不是,那么有哪些优点,当然,不是著名的编译器(G++,英特尔C++编译器,Visual C++等)的不太强(已知的bug和问题)点。,c++,compiler-construction,mission-critical,C++,Compiler Construction,Mission Critical,是否有记录在案的情况下,编译器产生了不正确的输出,导致关键任务软件出现故障?我使用Cygwin发现了问题,这种代码不编译,但在编译器内部生成了分段错误。同样的代码也适用于MinGW [edit]这是编译器报告: lista.h: In constructor `Lista<Dado>::Lista() [with Dado = int]': principal.cpp:15: instantiated from here lista.h:13: internal compiler

是否有记录在案的情况下,编译器产生了不正确的输出,导致关键任务软件出现故障?

我使用Cygwin发现了问题,这种代码不编译,但在编译器内部生成了分段错误。同样的代码也适用于MinGW

[edit]这是编译器报告:

lista.h: In constructor `Lista<Dado>::Lista() [with Dado = int]':
principal.cpp:15:   instantiated from here
lista.h:13: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://cygwin.com/problems.html> for instructions.
lista.h:在构造函数'lista::lista()[with Dado=int]'中:
principal.cpp:15:从此处实例化
lista.h:13:内部编译器错误:分段错误
请提交完整的bug报告,
如果合适,使用预处理源。
有关说明,请参阅。
我已经没有生成错误的源代码了,所以我无法提交报告


[/edit]

首先,您使用的平台通常决定要使用哪些编译器

第二,关于健壮性和性能的问题。我不知道你说的稳健性是什么意思。但如果你指的是编译后的二进制文件的正确性,我不得不说,只要你使用的是你提到的任何编译器的稳定版本,你就不会遇到“健壮性”问题。这些编译器都非常成熟,已经在无数实际项目中使用过。所以我根本不担心健壮性

关于性能,这是一个很难回答的问题,因为每个编译器都有不同的优化技术,理论上可以产生不同的性能。我希望有比我更博学的人能告诉你这件事

实际上,考虑到您提到的编译器都是高质量和成熟的编译器,您应该问的问题不是哪个编译器更健壮,而是:

  • 哪个编译器支持我的目标平台
  • 哪个编译器与我的开发环境和工具配合得很好
  • 哪个编译器是我的开发团队和集成商最熟悉的

优化技术的问题是一个开放的问题,然而,这是一个不平凡的问题。我希望有人能对此有所了解。

您使用的平台是什么?例如,VisualC++在Linux上是没有用的。 事实上,出于这些原因,你提到的三个是我会选择的三个

gcc/g++:开源,经过多年在许多Linux和UNIX系统上的协作经验验证和完善。不那么强大的一点仅仅是它是一个独立的命令行工具。您可以创建或可能找到自己的IDE风格的环境,但可以说,它不是以这种方式“发布”的

Visual C++:受Microsoft的良好支持,大量的代码示例和文档(MSDN)自然地连接到Windows API中。不那么强的是,它不是特别好的“视觉”。如果你习惯了Visual Basic(比如说),你会发现Visual C++没有同样的工作方式。

<>英特尔C++编译器:唉,我对英特尔编译器没有经验,但我相信它支持并行性,并且有高精度的数值库。


另一个可能值得一提的是Borland的C++Builder。它是一个加上一个快速应用开发环境,通过与Delphi的VCL兼容,拥有丰富的附加控件,但是相反,在C++ Builder中开发的代码不容易移植到其他C++编译器。它是免费的,便携的,而且很好。Windows端口(MinGW)在我上次使用它时已经过时了(可能是一年前)

英特尔C++编译器被认为是生成最快代码的一个(但它知道它为AMD处理器生成坏的SIMD代码)。 您可以在相当严格的条件下在GNU/Linux上自由使用它。
我已经使用它一段时间了,我喜欢它发出聪明的警告,而其他人却没有

VC++常常被认为是最好的C++ IDE,从我听说的编译器也很不错。它是免费的(就像免费啤酒一样),当然只能在Windows上使用。
如果您对Windows编程感兴趣,我建议使用此编译器,因为它始终是最新的,并为此提供了更高级的功能

我建议在Windows上使用VC++,在其他操作系统上使用G++。你自己试试I++的免费版本,看看它是否值得


当编译器产生不正确的输出导致任务关键型软件失败时,是否有记录在案的案例


是的,可能吧,但我要说的是,大多数时候这可能是程序员的错。例如,如果有人不知道浮点运算是如何工作的,那么很容易编写不可靠的代码。一个好的程序员也必须知道什么是保证的工作由C++标准和什么不是。程序员还应该知道编译器的限制是什么,例如,它执行标准的效果如何,优化的力度有多大。

由于您在评论中提到了“作为商用飞机系统的一部分”,可能值得一看在该领域实际维护认证的公司提供的编译器,或其他安全关键产品空间。这是一个。是另一个。

如果您谈论的是高性能计算意义上的输出代码的高性能,您可能还对和感兴趣。

优化编译器的要点是,它应该生成一个功能等同于原始编译器的优化程序。当然,功能等同与可观察的效果有关;国家自然会不一样。任何编译器t