Windows的C编译器?[关闭]


124

我可以使用gcc作为C编译器在Linux上很好地工作,但需要Windows解决方案。有任何想法吗?我从Bloodshed看过Dev-C ++,但在寻找更多选择。


查看2017年推出的Windows子系统Windows Linux。这使您可以在Windows上运行本地Linux工具,例如gcc。请参阅:docs.microsoft.com/en-us/windows/wsl/install-win10howtogeek.com/249966/...
埃文Rosica

Answers:



36

如果要针对Win32的产品,可以直接从Microsoft 获得Visual C ++ Express Edition。否则,如在其他地方建议的那样,使用MinGW或lcc。


3
Visual Studio很棒,但是如果他们在课堂上使用linux / gcc,那可能不是最佳选择。
乔尔·科恩荷恩

1
问题是C和C ++是不同的语言。C代码并非总是在C ++中工作。
偷渡

9
我相信Visual C ++也具有C模式编译器。
Alex M

4
Stroustrup在这里进行了说明:public.research.att.com/~bs/bs_faq.html#C-is-subset 我认为最糟糕的部分是char和int的sizeof()不匹配,以及C ++中添加的关键字。
Alex M

17
正如@Richard在评论中所说:VC ++缺少C99功能。
jfs

23

海湾合作委员会无处不在。它受到数十个社区的数千人的信任和充分理解。

Visual Studio也许是有史以来最好的IDE。它的下面有一个很棒的编译器。但这仅适用于Windows。

如果您只是玩游戏,请免费获得GCC。如果您担心多个平台,那就是GCC。如果您要进行认真的Windows开发,请获取Visual Studio。


现在有了Visual Studio Code跨平台的或多或少相同的功能。
Dr_Zaszuś

19

您总是可以通过cygwin使用gcc。


13
我认为这会将您的应用程序绑定到Cygwin DLL,这确实很烦人。
Alex M

我同意,但是如果应用程序具有安装程序,则可以捆绑dll。
UnkwnTech

13
在cygwin下编译时,请使用--mno-cygwin选项。这使得它可以编译MinGW二进制文件;无需Cygwin DLL。
科林

5
-mno-cygwin不再受支持-安装适合您平台的MinGW交叉编译器软件包
Christoph

17

Windows还有另一个免费的C编译器:PellesC。

Pelles C是用于Windows和Windows Mobile的完整开发套件。它包含Windows C和Windows Mobile的优化C编译器,宏汇编器,链接器,资源编译器,消息编译器,make实用程序和安装生成器。它还包含一个集成的开发环境(IDE),该开发环境具有项目管理,调试器,源代码编辑器和资源编辑器,用于对话框,菜单,字符串表,加速器表,位图,图标,光标,动画光标,动画视频(无声音的AVI),版本和XP清单。

网址:http//www.smorgasbordet.com/pellesc/


12

我个人一直在研究将MinGW(Bloodshed的用途)与Code Blocks IDE一起使用

我也在考虑使用Digital Mars C / C ++编译器。

两者似乎都受到重视。


Digital Mars C / C ++已经存在了一段时间,并且运行良好。但是,您会遇到库链接问题,因为它使用的对象文件格式不太常见。如果您可以获得源代码,那不是什么大问题。另外,我从未使用过它们,但是有文件格式转换器工具。
BCS

8

您可以尝试Code :: Blocks,它是更好的IDE并与MinGW GCC一起提供!我用过它,而且它对于C / C ++来说是一个非常好的免费软件IDE。


@zeboidlund,发布winxp的版本是什么?
Pacerier '17

8

从技术上讲,GCC并不是Linux特定的编译器。它是符合标准的c / c ++编译器,我每天都会将其用于Windows程序。最好使用它,直到对其他事物感到更舒服为止。

我建议您使用GCC的MinGW发行版。这将使用标准库等为Windows本地编译程序。

如果您正在寻找IDE,我有两个建议。Visual Studio是Microsoft版本,尽管存在问题,但它是处理代码的出色 IDE。但是,如果您正在寻找更轻量的东西,CodeBlocks也相当不错,并且具有基本使用任何已安装编译器(包括Visual Studio附带的多种形式的GCC和Microsoft编译器)的附加好处。 Studio),并能够通过其他IDE打开项目文件。另外,它也可以在linux上运行,因此您可以自己轻松进行这种转换。

我个人更喜欢GCC,但这就是我。如果您真的想要Microsoft解决方案,那么VS是必经之路。


7

MinGW是Windows的gcc的直接翻译,或者您可能想使用IDE 来检查LCC或普通C(或多或少)。Pelles C似乎基于lcc,并且具有更好的IDE,尽管我个人没有使用它。当然,总是有免费的MSVC Express Edition,但这就是您的要求。


6

大多数大学都允许您访问Microsoft Dreamspark

如果您在课堂上使用GCC / Linux,则只需安装Ubuntu即可。Windows是用于C开发的糟糕平台。


16
Windows是所有开发的糟糕平台。修复了您的问题。
notbad.jpeg 2014年

4
这是Visual Basic的最佳选择,您不能否认!
rlms 2014年

1
@sweeneyrod:公平地说,使用VB为Wine开发应用程序将是相当不错的。
马特·乔纳

通过大学获得的东西的问题是,在课程结束后,您将无法运用自己努力学习的技能。
richard1941

@ richard1941:大学并不是打算将您在课堂上学到的那些技术完全应用于工业。
马特·乔纳

5

如果您实际上是在使用C,请小心使用C编译器,而不要使用C ++。尽管C中的大多数程序都可以使用C ++编译器工作,但存在足够的差异,可能会出现问题。我同意建议通过cygwin使用gcc的人。

编辑:
http://en.wikipedia.org/wiki/Compatibility_of_C_and_C%2B%2B显示了一些主要差异


您能否详细说明“足够的差异”?
马克


2
任何C ++编译器都会编译C-通常会根据文件名扩展名自动选择编译器模式,但是每个编译器都可以选择强制C或C ++模式,而不考虑文件名。
Michael Burr



3

我参加这个聚会很晚,但是对于Windows上以后的所有C语言人来说,Visual Studio都将目标瞄准C90而不是C99,这是您在* nix上得到的。我目前正在通过与Cygwin一起使用Sublime Text 2来针对Windows上的C99。



1

有一些评论指出C不是C ++。没错,所有C ++编译器也都可以编译C-通常,编译器模式将根据文件名扩展名自动选择,但是每个编译器都可以选择强制C或C ++模式,而不考虑文件名。

因此,请选择最适合gcc,VC ++ Express,Digital Mars等的免费C ++编译器。使用您最喜欢的emacs,vim,VC ++ Express,Code :: Blocks,Bloodshed的IDE-再次使用。

这些工具中的任何一个都将足以用于学习。就个人而言,由于您正在询问Windows,因此我会选择VC ++ Express-这是一个出色的IDE,它是免费的,并且可以很好地编译C程序。


1
从经验上来讲:VC是一种可怕的C编译器。VC中存在的任何现代事物都已落伍。对于C ++来说很棒...对于C来说,这太可怕了。
zeboidlund 2012年

0

Visual C ++ Express是适用于Windows的精美免费IDE,带有编译器。

如果您对一般的命令行解决方案(尤其是gcc)更满意,那么 MinGWCygwin可能会更适合您。他们也都是免费的。


0

这取决于您在课堂上使用的内容。

如果实验室和作业位于linux中,则您可能需要MinGW解决方案。如果它们在Windows中,请获取Visual Studio Express。


0

您不能从学校获得免费版本的Visual Studio Student Addition吗?大多数大学都有向学生提供免费软件的程序。


1
不,他是对的。有一个名为“ Dream Spark”的特殊程序,并不是说我会支持像微软这样的偷偷摸摸的东西。
马特·乔纳

0

您是说Bloodshed的Dev-C ++吗?这是一个不错的C ++可视化IDE,它使用MinGW的Windows gcc作为后台编译器。该项目已经被放弃了一段时间(在我看来,使用Delphi开发C ++ IDE是一件愚蠢的事,以引起开发人员的注意),但是没有什么可以阻止您使用它并更新MinGW的gcc版本用于最新版本-除了获得GPL许可外。


0

我使用BloodShed的DEV C ++,CygWin或Visual C ++ Express。所有这些都是免费的,并且运行良好。我发现对我而言,DEV C ++表现最好,而最古怪。每个编译器都有自己的怪癖和差异,您需要尝试一些并找到最合适的代码。我还喜欢DEV C ++允许我更改编辑器中使用的字体这一事实。我喜欢Proggy编程字体!


-1

Windows C ++编译器必须能够运行。

另外,请查看MinGW


6
C!= C ++。存在差异,因此并非所有C代码都可以在C ++中进行编译。
蟑螂
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.