Компилятор C для Windows? [закрыто]

125

Я отлично работаю с Linux, используя gcc в качестве компилятора C, но мне нужно решение для Windows. Любые идеи? Я посмотрел на Dev-C ++ от Bloodshed, но ищу другие варианты.

mario64
источник
Ознакомьтесь с подсистемой Windows для Linux, представленной в 2017 году. Это позволяет запускать собственные инструменты Linux, такие как gcc, прямо в Windows. См .: docs.microsoft.com/en-us/windows/wsl/install-win10 и howtogeek.com/249966/…
Эван

Ответы:

79

Вы можете использовать GCC в Windows, загрузив MingW ( прекращено ) или его преемника Mingw-w64 .

Бен Хоффштейн
источник
1
stackoverflow.com/questions/29205033/… - Но использование MinGW в Windows не решает проблем с обработкой LibVLC и Gstreamer. При использовании MinGW сбой исполняемых файлов. Есть ли лучшее решение?
1
Хотя mingw - фантастический проект, он меня не устраивал, когда я хотел скомпилировать Windows exec. в Linux.
Виджай Кумар Канта
36

Вы можете получить Visual C ++ Express Edition прямо от Microsoft, если хотите, чтобы что-то было ориентировано на Win32. В противном случае MinGW или lcc, как предлагается в другом месте.

Алекс М
источник
3
Visual Studio великолепна, но если они используют linux / gcc в своем классе, это, вероятно, не лучший вариант.
Джоэл Кохорн,
1
Проблема в том, что C и C ++ - разные языки. Код C не всегда работает на C ++.
tloach
9
Я считаю, что Visual C ++ также имеет компилятор C-режима.
Alex M,
4
Страуструп разъясняет это здесь: public.research.att.com/~bs/bs_faq.html#C-is-subset Я думаю, что худшая часть - это несоответствие sizeof () для символов и целых чисел, а также добавленные ключевые слова в C ++.
Alex M
17
Как сказал @Richard в комментариях: VC ++ не хватает функций C99.
jfs
23

GCC распространен повсеместно. Ему доверяют и его хорошо понимают тысячи людей в десятках сообществ.

Visual Studio, пожалуй, лучшая из когда-либо разработанных IDE. Под ним стоит отличный компилятор. Но это строго только для Windows.

Если вы просто играете, получите GCC - это бесплатно. Если вас беспокоит несколько платформ, это GCC. Если вы говорите о серьезной разработке для Windows, получите Visual Studio.

Кевин Литтл
источник
Сейчас Visual Studio Codeесть кроссплатформенный, с более или менее такой же функциональностью.
Dr_Zaszuś
19

Вы всегда можете просто использовать gcc через cygwin.

UnkwnTech
источник
13
Это привязывает ваше приложение к Cygwin DLL, что, на мой взгляд, очень раздражает.
Alex M,
Я согласен, но если у приложения есть установщик, можно связать dll.
UnkwnTech,
13
Используйте параметр --mno-cygwin при компиляции под cygwin. Это заставляет компилировать двоичные файлы MinGW; Cygwin DLL не требуется.
Colin
5
-mno-cygwinбольше не поддерживается - вместо этого установите пакеты кросс-компилятора MinGW, подходящие для вашей платформы
Christoph
18

Существует еще один бесплатный компилятор C для Windows: Pelles C.

Pelles C - это полный комплект разработчика для Windows и Windows Mobile. Он содержит, среди прочего, оптимизирующий компилятор C, сборщик макросов, компоновщик, компилятор ресурсов, компилятор сообщений, утилиту make и конструкторы установки как для Windows, так и для Windows Mobile. Он также содержит интегрированную среду разработки (IDE) с управлением проектами, отладчиком, редактором исходного кода и редакторами ресурсов для диалогов, меню, таблиц строк, таблиц ускорителей, растровых изображений, значков, курсоров, анимированных курсоров, анимационных видео (AVI без звука), версии и манифесты XP.

URL: http://www.smorgasbordet.com/pellesc/

Hideo
источник
12

Я лично изучал возможность использования MinGW (что использует Bloodshed) с IDE Code Blocks. .

Я также подумываю об использовании компилятора Digital Mars C / C ++ .

Оба кажутся хорошо оцененными.

Филип Тинни
источник
Digital Mars C / C ++ существует уже некоторое время и преуспевает. Однако вы столкнетесь с проблемами при связывании библиотек, поскольку они используют не очень распространенный формат объектных файлов. Если вы можете получить исходный код, это не такая уж большая проблема. Кроме того, я никогда ими не пользовался, но есть инструменты для конвертации форматов файлов.
BCS,
8

Вы можете попробовать Code :: Blocks , который лучше IDE и поставляется с MinGW GCC! Я использовал его, и это слишком хорошая бесплатная IDE для C / C ++.

yogeesh
источник
@zeboidlund, а какая версия поста winxp?
Pacerier
8

GCC технически не является компилятором для Linux. Это компилятор c / c ++, соответствующий стандартам, и я ежедневно использую его для программ Windows. Вероятно, лучше всего использовать его, пока вы не освоитесь с чем-то другим.

Я рекомендую вам использовать дистрибутив GCC MinGW. Это скомпилирует ваши программы для Windows, используя стандартную библиотеку и т. Д.

Если вы ищете IDE, у меня есть две рекомендации. Visual Studio - это версия Microsoft, и, хотя у нее есть свои проблемы, это отличная IDE для работы с кодом. Однако, если вы ищете что-то более легкое, CodeBlocks также довольно хорош, и имеет дополнительное преимущество, заключающееся в возможности использовать практически любой установленный вами компилятор (включая несколько форм GCC и компилятор Microsoft, который поставляется с Visual Studio) и возможность открывать файлы проекта из других IDE. Кроме того, он работает и на Linux, так что вы можете упростить этот переход для себя.

Я лично предпочитаю GCC, но это только я. Если вам действительно нужно решение Microsoft, VS - это то, что вам нужно.

Николас Флинт
источник
7

MinGW будет прямым переводом с gcc для Windows, или вы можете попробовать LCC , vanilla c (более или менее) с IDE. Кажется, что Pelles C основан на lcc и имеет несколько более приятную среду разработки, хотя я лично ею не пользовался. Конечно, всегда есть бесплатная экспресс-версия MSVC, но это ваш выбор.

mjard
источник
6

Большинство университетов предоставляют вам доступ к Microsoft Dreamspark .

Если вы используете GCC / Linux в классе, просто установите Ubuntu . Windows - ужасная платформа для разработки на C.

Мэтт Джойнер
источник
16
Windows - ужасная платформа для всех разработок. Исправлено это для тебя.
notbad.jpeg
4
Это лучший вариант для Visual Basic, вы не можете этого отрицать!
rlms
1
@sweeneyrod: Честно говоря, было бы неплохо использовать VB для разработки приложений для Wine.
Мэтт Джойнер
Проблема с тем, что получают доступ через университет, заключается в том, что после окончания урока у вас нет возможности применить на практике навыки, над приобретением которых вы так усердно работали.
richard1941
@ richard1941: В университетах нет намерения применять в промышленности именно те технологии, которые вы изучили в классе.
Matt Joiner
5

Будьте осторожны при использовании компилятора C, а не C ++, если вы действительно используете C. Хотя большинство программ на C будут работать с компилятором C ++, существует достаточно различий, из-за которых могут возникнуть проблемы. Я согласен с людьми, которые предлагают использовать gcc через cygwin.

РЕДАКТИРОВАТЬ:
http://en.wikipedia.org/wiki/Compatibility_of_C_and_C%2B%2B показывает некоторые из основных различий

tloach
источник
Не могли бы вы подробнее остановиться на «достаточном количестве различий»?
Марк
2
Любой компилятор C ++ также будет компилировать C - обычно режим компилятора будет автоматически выбран на основе расширения имени файла, но у каждого компилятора также есть возможность принудительно включить режим C или C ++ независимо от имени файла.
Майкл Берр,
3

GCC работает нормально. Обратите внимание, что MSVC не обязательно является допустимым решением, потому что он не поддерживает C99.

Темный Шикари
источник
6
-1, GCC также не поддерживает C99.
Бастьен Леонар
4
Это не так уж плохо: gcc.gnu.org/c99status.html
AIB
3

Я опаздываю на эту вечеринку, но для всех будущих разработчиков C в Windows Visual Studio нацелена на C90, а не на C99, что вы получите на * nix. В настоящее время я нацелен на C99 в Windows, используя Sublime Text 2 в тандеме с Cygwin.

Джон Руис
источник
1

Visual C ++ Express - прекрасная и бесплатная IDE для Windows, которая поставляется с компилятором.

Если вам удобнее работать с командной строкой в ​​целом и с gcc в частности, вам больше подойдут MinGW или Cygwin . Они оба бесплатны.

моток
источник
1

Было несколько комментариев, указывающих на то, что C - это не C ++. Хотя это правда, также верно и то, что любой компилятор C ++ также будет компилировать C - обычно режим компилятора будет автоматически выбран на основе расширения имени файла, но у каждого компилятора также есть возможность принудительно включить режим C или C ++ независимо от имени файла.

Так что выберите бесплатный компилятор C ++, который вам больше всего подходит: gcc, VC ++ Express, Digital Mars и т. Д. Используйте IDE, которая вам больше всего нравится: emacs, vim, VC ++ Express, Code :: Blocks, Bloodshed - опять же, что угодно.

Любого из этих инструментов будет более чем достаточно для обучения. Лично, раз уж вы спрашиваете о Windows, я бы выбрал VC ++ Express - это отличная IDE, она бесплатна и прекрасно компилирует программы на C.

Майкл Берр
источник
1
По опыту: VC - ужасный компилятор C. Все, что существует современное, в ВК отстало. Для C ++ это здорово ... для C ужасно.
zeboidlund
0

Все сводится к тому, что вы используете в классе.

Если лабораторные работы и задания выполняются в Linux, то вам, вероятно, понадобится решение MinGW. Если они в Windows, скачайте Visual Studio Express.

Джоэл Кохорн
источник
0

Разве вы не можете получить бесплатную версию Visual Studio Student Addition в своем учебном заведении? В большинстве университетов есть программы, по которым студентам предоставляется бесплатное программное обеспечение.

Чарльз Грэм
источник
1
Нет, он прав. Есть специальная программа под названием «Dream Spark», не то чтобы я поддерживал такую ​​подлую штуку Microsoft.
Matt Joiner
0

Вы имеете в виду Dev-C ++ от Bloodshed? Это хорошая визуальная IDE для C ++, в которой используется компилятор MinGW gcc для Windows в качестве фонового компилятора. Проект был заброшен на некоторое время (на мой взгляд, использование Delphi для разработки C ++ IDE - очень глупая вещь, чтобы привлечь внимание разработчиков), однако ничто не мешает вам использовать его и обновить версию MinGW gcc it использует самую последнюю - кроме того, под лицензией GPL.

Джо Пинеда
источник
0

Я использую DEV C ++ от BloodShed, CygWin или Visual C ++ Express. Все они бесплатны и хорошо работают. Я обнаружил, что для меня DEV C ++ работал лучше всего и был наименее изворотливым. У каждого компилятора есть свои особенности и отличия, вам нужно попробовать несколько и найти тот, который вам больше всего подходит. Мне также понравилось, что DEV C ++ позволил мне изменить шрифты, которые используются в редакторе. Мне нравятся шрифты Proggy Programming!

Майкл Браун
источник
-1

Обязательные компиляторы Windows C ++ будут работать.

Также проверьте MinGW .

nsanders
источник
6
С! = С ++. Существуют такие отличия, что не весь код C даже компилируется на C ++.
tloach