C++ - 是否值得在 Windows 上使用 GCC 而不是 MSVC?
C++ - Is it worth using GCC over MSVC on Windows?
我已经阅读了一些关于 GCC 与 MSVC 以及这些编译器的开发的问题,例如 GCC worth using on Windows to replace MSVC?, Visual Studio or GCC? and GCC vs MS C++ compiler for maintaining API backwards binary compatibility。但这些都是非常过时的问题(2011 年)。随着新的 c++14 特性的出现,两个编译器之间的平衡开始了。是否仍然值得在 Windows 上使用 Code::Blocks 并具有使用 Microsoft Visual Studio 的所有优点,例如:
- 原生 Windows 库,支持使用 MFC、ATL、DirectX 和其他有用的 Microsoft 库。
- 出色的调试功能,尤其是在使用反汇编视图时(它有很多有用的功能)。
在我读过的大多数主题中,他们总是说 GCC 代码生成比 MSVC 的好,但在这方面的差异开始缩小。 GCC 中的代码生成是否仍然更好?最新的 C++ 特性呢,哪些是领先的?
我看到使用 GCC 与 MSVC 相比的最大优势是:
- 它是开源的,这使得自定义编译器代码成为可能。
- 更容易制作可移植代码。
- 它是免费的。
- ???更好的代码生成???
GCC 上的 C++14 特性:https://gcc.gnu.org/projects/cxx1y.html
MSVC RTM 上的 C++11 和 C++14 功能:http://blogs.msdn.com/b/vcblog/archive/2015/06/19/c-11-14-17-features-in-vs-2015-rtm.aspx
详细的问题是公开征求意见;甚至还有一些挑衅"best IDE"等等。即便如此标题中提出的问题,
” C++ - Is GCC [i.e. g++] worth using on Windows nowadays?
有一个简单的fact-based答案,即是,因为
在可能的情况下,将代码公开给至少两个编译器是个好主意,例如组合 Visual C++ 和 g++,以及
g++ 适合学习。
Windows 中 g++ 的主要问题是它的 API 绑定只完全覆盖 Windows XP API,什么都没有之后很少。
是的。
尽管 MSVC 在更新的 C++ 标准方面取得了 一些 进步,但它仍然 可悲地 落后,即使在 C++98 状态下(这很方便地从该状态页面中排除)。
根据我最近的阅读,MSVC 团队甚至没有具体的计划来解决一些旧问题,例如具有名称查找和模板实例化。
现在,当您可以使用带有 clang 的 MSVC 作为编译器时,这可能是停止使用 GCC 的原因。然而,就我的目的而言,我发现 clang 的诊断(有时是劣质代码)很多,所以我仍然使用 GCC 作为我的主要编译器,只使用 clang 作为备份。
正如@Cheersandhth 所说,使用两个编译器很好。虽然也许看看英特尔的编译器。
我已经阅读了一些关于 GCC 与 MSVC 以及这些编译器的开发的问题,例如 GCC worth using on Windows to replace MSVC?, Visual Studio or GCC? and GCC vs MS C++ compiler for maintaining API backwards binary compatibility。但这些都是非常过时的问题(2011 年)。随着新的 c++14 特性的出现,两个编译器之间的平衡开始了。是否仍然值得在 Windows 上使用 Code::Blocks 并具有使用 Microsoft Visual Studio 的所有优点,例如:
- 原生 Windows 库,支持使用 MFC、ATL、DirectX 和其他有用的 Microsoft 库。
- 出色的调试功能,尤其是在使用反汇编视图时(它有很多有用的功能)。
在我读过的大多数主题中,他们总是说 GCC 代码生成比 MSVC 的好,但在这方面的差异开始缩小。 GCC 中的代码生成是否仍然更好?最新的 C++ 特性呢,哪些是领先的?
我看到使用 GCC 与 MSVC 相比的最大优势是:
- 它是开源的,这使得自定义编译器代码成为可能。
- 更容易制作可移植代码。
- 它是免费的。
- ???更好的代码生成???
GCC 上的 C++14 特性:https://gcc.gnu.org/projects/cxx1y.html
MSVC RTM 上的 C++11 和 C++14 功能:http://blogs.msdn.com/b/vcblog/archive/2015/06/19/c-11-14-17-features-in-vs-2015-rtm.aspx
详细的问题是公开征求意见;甚至还有一些挑衅"best IDE"等等。即便如此标题中提出的问题,
” C++ - Is GCC [i.e. g++] worth using on Windows nowadays?
有一个简单的fact-based答案,即是,因为
在可能的情况下,将代码公开给至少两个编译器是个好主意,例如组合 Visual C++ 和 g++,以及
g++ 适合学习。
Windows 中 g++ 的主要问题是它的 API 绑定只完全覆盖 Windows XP API,什么都没有之后很少。
是的。
尽管 MSVC 在更新的 C++ 标准方面取得了 一些 进步,但它仍然 可悲地 落后,即使在 C++98 状态下(这很方便地从该状态页面中排除)。
根据我最近的阅读,MSVC 团队甚至没有具体的计划来解决一些旧问题,例如具有名称查找和模板实例化。
现在,当您可以使用带有 clang 的 MSVC 作为编译器时,这可能是停止使用 GCC 的原因。然而,就我的目的而言,我发现 clang 的诊断(有时是劣质代码)很多,所以我仍然使用 GCC 作为我的主要编译器,只使用 clang 作为备份。
正如@Cheersandhth 所说,使用两个编译器很好。虽然也许看看英特尔的编译器。