C++ 编译器差异

标签 c++ compiler-construction

<分区>

VC++.net编译器(cl.exe/EHsc)和GCC编译器有什么区别,编译,比方说这个程序:

#include <iostream>
using namespace std;

int main(){
 unsigned int test;
 cin >> test;
 cout << test;
 return 0;
}

我知道vc++编译器编译成exe,gcc编译成linux可执行文件,仅此而已。但真正的区别是什么?

编辑:我正在考虑较低级别的差异。让我更清楚一点。在同一平台上用 2 个不同的 C++ 编译器编译的同一个程序有什么区别(win 或 linux 无关紧要)。

最佳答案

GCC 的意思是 GNU Compiler Collection,它是编译器和链接器集合的前端。编译C++时通常会调用g++。

至于 g++ 与 VC++,它们是完全不同的编译器,因此存在大量差异。

例如,他们会以不同的方式优化代码,他们可能会因为没有正确遵循标准、不同的库、不同的 header 、不同的实现等而存在细微的语法差异......

g++ 可用于在各种不同平台上编译项目,而 VC++ 只能为 Windows 平台编译程序。

关于C++ 编译器差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3702542/

相关文章:

java - 编译器不识别 Action 监听器类中的参数

c++ - 在 Cygwin 中处理 "C compiler cannot create executables"

windows - 如何手动创建可执行的 .exe PE 文件?

c++ - make_unique 值是否初始化 char 数组

java - 多种语言的ActiveMQ发布者和订阅者(​​C++ Java)

c++ - 在 QueryInterface() 实现中调用 AddRef() 的正确方法

c++ - typedef 语法错误

c++ - C++目标文件的大小取决于什么?

language-agnostic - 上下文无关语法定义中的可选与强制终止符

c++ - 定义分钟单位