Visual C++ 2008 和 g++ 的区别
Posted
技术标签:
【中文标题】Visual C++ 2008 和 g++ 的区别【英文标题】:Difference Betwen Visual C++ 2008 And g++ 【发布时间】:2009-07-22 23:36:36 【问题描述】:我正在学习 C++,当我在测试 Microsoft Visual C++ 2008 Express 和 Eclipse Ganymede 时,使用的是 g++ 作为默认编译器,我注意到 VC++ 中的相同代码会出现一些错误,并且在 g++ 中编译正常,没有错误或警告并正常执行,但我想知道 VC++ 语法和 g++ 语法有什么区别?谢谢!
【问题讨论】:
存在很多差异,最好的选择(与大多数问题一样)是在此处发布代码和生成的错误。 @Justile,我想知道一般的区别。谢谢! 【参考方案1】:由于我是新人(声誉还不到 50),所以无法发表评论,但这里有另一个涉及类似主题的 Stack Overflow 问题:
Compiling differences in Visual C++ and *nix environments
【讨论】:
【参考方案2】:这是一个非常广泛的话题。两种编译器都大致符合 ISO C++ 标准,但有一些例外,但这些例外可能有所不同(例如,VC++ 以非标准方式处理函数上的 throw
说明符,而 g++ 在这方面符合标准)。此外,这两个编译器都提供了相当多的扩展,这些扩展大多相互不兼容(例如 VC++ __property
和 __interface
,或 g++ typeof
和计算 goto)。一般来说,这里最好的建议是查阅任一产品的文档。如果您有任何特定代码遇到问题,并且想知道为什么它可以编译其中一个而不是另一个,那么可以更详细地回答。
【讨论】:
【参考方案3】:请将此添加到 Pavel 的答案中:
如果您正在开发跨平台产品,请使用 g++ (MingW) 并坚持 C++ 标准。使用 MingW 提供的符合 POSIX 标准的 API,标准设施不能满足此目的。使用 MingW 构建的可执行文件不需要在目标系统上安装特殊的运行时,但 VC++ 2008 需要它。因此,使用 MingW 应用程序的部署更简单。
VC++ 的一个优势是其出色的 IDE。 Microsoft 编译器似乎也执行了一些特定于 Windows 的优化。
不过,MingW 与 CodeBlocks IDE 相辅相成,可以为您提供出色的免费跨平台 C++ 开发环境。
【讨论】:
NetBeans IDE 也为您提供了出色的开发环境。 如果Linux编译器是标准的并且微软编译器/IDE不用于跨平台,它会显示一些东西。以上是关于Visual C++ 2008 和 g++ 的区别的主要内容,如果未能解决你的问题,请参考以下文章
Visual C++和Visual Studio有啥区别,大学生用哪个比较好?
同时学习 Visual C++ 2008 和 C++?有啥资源可以推荐吗? [关闭]
MongoDB 和 Visual C++ 2008 链接器错误
如何在 Visual Studio 2008 和 C++ 中显示希腊字符? [复制]