Nai*_*rou 59 c++ windows gcc visual-c++ c++11
我目前使用Visual Studio 2010在Windows上使用C++进行开发.在C++ 11正式发布之后,我开始使用MSVC中已有的一些功能.但是,正如预期的那样,绝大多数新变化都不受支持.
我想也许即将推出的Visual Studio版本会添加这些新功能.然而,看完之后这看起来很少会改变.
因此,我很好奇在Windows而不是MSVC上使用GCC的可行性,因为它似乎已经支持绝大多数C++ 11.据我所知,这意味着使用MinGW(我还没有看到任何其他本地Windows版本的GCC).但我对这是否值得尝试有疑问:
Dam*_*mon 49
MSVC具有巨大的优势,即在Windows下无法使用IDE,包括调试器支持.
MinGW最可能的替代方案是Code :: Blocks,但介于两者之间,特别是在代码完成和调试器方面.
此外,MSVC允许您使用MinGW不支持的一些专有的Microsoft内容(MFC,ATL,以及可能的其他内容),并且使得使用GDI +和DirectX更容易和更直接(尽管可以同时使用MinGW).
正如另一篇文章中提到的,Cygwin将具有额外的依赖性和可能的许可证问题(依赖性是GPL,因此您的程序也必须如此).MinGW没有任何此类依赖性或问题.
MinGW的编译速度也明显慢于MSVC(虽然预编译的头文件有点帮助).
尽管如此,GCC/MinGW是一个完全可靠的高质量编译器,在我看来,它在生成代码的质量方面优于任何迄今为止的MSVC版本.
对于最新版本的MSVC,这有点不太明显,但仍然可见.特别是对于与SSE,内在函数和内联汇编相关的任何事情,GCC从那时起就完全消除了MSVC(尽管它们正在慢慢追赶).
GCC中的标准合规性也要好得多,这可能是一把双刃剑(因为它可能意味着你的一些代码不会在更合格的编译器上编译!),就像C++ 11支持一样.
MinGW还可选择支持DW2异常,这些异常与"普通"风格完全不兼容,并在可执行文件中占用更多空间,但从积极的方面来说,在运行时"实际上是零成本".
dan*_*jar 12
我想添加一些信息,因为自提出问题以来该字段可能已更改.
切换到MSVC的主要问题是缺乏与MinGW完美集成的良好IDE.Visual Studio是一个非常强大的工具,并且是Windows上唯一一段时间的播放器.然而,Jetbrains几天前发布了他们的新C++ IDE CLion的预览版本.
在处理跨平台应用程序时,主要的好处是.在这种情况下,基于GCC的工具链可以使生活更轻松.此外,CLion与CMake紧密集成,与Visual Studio相比,这也是一个很大的优势.因此,在我看来,现在考虑切换到MinGW是值得的.
GCC的C++ 11支持是非常惊人的(并且完全符合标准一致性,现在<regex>
已经实现).
如果更换编译器,则需要确保可以使用新编译器构建每个依赖项.它们不是可替代的插件(虽然Clang正在努力成为这种方式).
GCC是一个很好的编译器,可以生成与MSVC具有几乎相同性能的代码,如果不是更好的话.它缺少一些低级别的Windows特性.
除此之外,回答你的问题:
归档时间: |
|
查看次数: |
51671 次 |
最近记录: |