我可以将 Visual C++ 用于将使用 gcc 编译的作业吗?
Posted
技术标签:
【中文标题】我可以将 Visual C++ 用于将使用 gcc 编译的作业吗?【英文标题】:Can I use Visual C++ for an assignment that will be compiled using gcc? 【发布时间】:2014-01-14 12:12:01 【问题描述】:我被指派为一个编程竞赛做某个项目,他们的网站上说他们将使用 gcc 3.3.4 编译器测试程序。那么,我想知道的是,在项目中使用 Visual C++ 但避免使用 .NET 便利(即创建本机 Win32 应用程序)对我来说是否安全?我可以下载他们提供的工具之一,但我更习惯于 Visual Studio 的环境。大家觉得呢?
【问题讨论】:
答案是“可能”...但是既然您已经知道如何评估您的工作,您不认为应该在相同的环境中进行测试以确定吗?编译器的工作方式存在细微差别,因此即使您主要使用 VC++ 工作,也请在提交工作之前帮您评分并在 gcc 下进行验证。 哦,好吧,那我想我得处理一下了。 他们用什么平台来测试这个东西? gcc 3.3.4 很古老,他们为什么要使用这么旧的编译器? 真的吗?哈,我不知道他们为什么要这么做。他们将使用 Linux(没有指定什么版本)。 我认为 GCC 3.3 可以与 VS2001 或那个年代的东西相媲美。当然 VS2012 太现代了,它允许 GCC 在石器时代不支持的许多 C++11 功能。 【参考方案1】:无论您做什么,在提交之前使用gcc
测试您的代码。除此之外,很难回答你的问题。 MSVC++ 和 gcc 之间肯定存在差异。这些差异是否重要取决于您的习惯和分配的类型。根据这些因素,您可能需要付出很多努力才能将代码从 MSVC++ 移植到 gcc
。或者你可能不会。
就个人而言,我更喜欢使用我的程序将要测试的编译器。
【讨论】:
我就是这么想的。无论如何,还有一件事,我是否可以使用 Visual C++ IDE(具有 IntelliSense 和所有其他功能)但使用 gcc 编译? 可以,但这又取决于您是否使用过标准 C。此外,MSVC 仅支持 C89,而 GCC 支持 C99 及更高版本.. 不需要通过 MSVC 编译。也就是说......您可以将该工具用作编辑器(受益于 IntelliSense),同时在外部执行手动编译。请记住,这样做时,IntelliSense 使用 VC 的头文件,而不是 gcc 的,除非您已经努力解决这个问题(尽管这不太可能成为问题)。 @Aniket 问题被标记为 C++,而不是 C。 @JimIliadis 简短的回答是肯定的,如果这只是一次性的,那么这样做可能更容易。如果您对能够长期执行此操作感兴趣,您可能希望让 Visual Studio 直接使用 GCC 进行编译,在这种情况下,请查看 this question。以上是关于我可以将 Visual C++ 用于将使用 gcc 编译的作业吗?的主要内容,如果未能解决你的问题,请参考以下文章
将源代码从 Visual C++ 移植到 GCC 都有哪些陷阱[关闭]
等效于 Visual C++ 中 gcc 的 __attribute__ 格式
linux下C的建立编译和运行 (附上Windows下visual c++的用法)