C компілятор для Windows? [зачинено]


125

Я прекрасно працюю над Linux, використовуючи gcc як мій компілятор C, але хотів би рішення Windows. Будь-які ідеї? Я переглянув Dev-C ++ з "Bloodshed", але шукаю ще варіанти.


Перегляньте підсистему Windows для Linux, представлену в 2017 році. Це дозволяє запускати рідні засоби Linux, такі як gcc, прямо в Windows. Дивіться: docs.microsoft.com/en-us/windows/wsl/install-win10 та howtogeek.com/249966/…
Evan Rosica

Відповіді:


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 у класі, це, мабуть, не найкращий варіант.
Joel Coehoorn

1
Проблема полягає в тому, що C і C ++ - це різні мови. Код C не завжди працює в C ++.
tloach

9
Я вважаю, що Visual C ++ також має компілятор C-mode.
Алекс М

4
Stroustrup пояснює це тут: public.research.att.com/~bs/bs_faq.html#C-is-subset Я думаю, що найгірша частина - це невідповідність sizeof () для символів та ints, а також додані ключові слова у C ++.
Алекс М

17
Як сказав @Richard у коментарях: VC ++ не має можливостей C99.
jfs

23

GCC є всюдисущим. Це довіряють і добре розуміють тисячі людей у ​​десятках громад.

Visual Studio - це, мабуть, найкращий IDE, який коли-небудь розроблявся. Під ним є чудовий компілятор. Але це суто лише для Windows.

Якщо ви просто граєте, отримайте GCC - це безкоштовно. Якщо ви стурбовані кількома платформами, це GCC. Якщо ви говорите про серйозну розробку Windows, отримайте Visual Studio.


Зараз існує Visual Studio Codeкросплатформна, з більш-менш однаковою функціональністю.
Dr_Zaszuś

19

Ви завжди можете просто використовувати gcc через cygwin.


13
Це пов'язує ваш додаток із DLL Cygwin, що дуже дратує, на мій погляд.
Алекс М

Я погоджуюсь, але якщо програма має інсталятор, можна поєднати dll.
UnkwnTech

13
Використовуйте параметр --mno-cygwin під час компіляції під cygwin. Це змушує компілювати бінарні файли MinGW; DLL Cygwin не потрібен.
Колін

5
-mno-cygwinбільше не підтримується - замість цього встановіть пакети крос-компіляторів MinGW, відповідних для вашої платформи
Крістоф

17

Є ще один безкоштовний компілятор C для Windows: Pelles C.

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

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


12

Я особисто розглядав можливість використання MinGW (що використовує Bloodshed) з IDE Code Blocks .

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

Обидва, здається, добре оцінені.


Цифровий Марс C / C ++ існує вже деякий час і працює добре. Однак ви зіткнетеся з проблемами, пов’язаними з бібліотеками, оскільки він використовує не настільки звичайний формат файлу об'єкта Якщо ви можете отримати вихідний код, це не стільки проблема. Крім того, я ніколи їх не використовував, але є інструменти для перетворення файлів.
BCS

8

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


@zeboidlund, А що таке версія winxp?
Pacerier

8

GCC технічно не є специфічним компілятором для Linux. Його компілятор c / c ++ відповідає стандартам, і я його використовую для програм Windows щодня. Напевно, найкраще, щоб ти ним користувався, поки не станеш зручнішим із чимось іншим.

Я рекомендую вам використовувати розподіл GCC MinGW. Це складе ваші програми спочатку для Windows, використовуючи стандартну бібліотеку тощо.

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

Я особисто віддаю перевагу GCC, але це тільки я. Якщо ви дійсно хочете рішення Microsoft, VS - це шлях.


7

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


6

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

Якщо ви використовуєте GCC / Linux у класі, просто встановіть Ubuntu . Windows - це жахлива платформа для розвитку C.


16
Windows - це жахлива платформа для всього розвитку. Виправлено це для вас.
notbad.jpeg

4
Це найкращий варіант для Visual Basic, ви не можете заперечувати це!
rlms

1
@sweeneyrod: Чесно кажучи, використання VB для розробки програм для Wine було б дуже непогано.
Метт Столяр

Проблема в чомусь, до якого можна дістатися через університет, полягає в тому, що після закінчення заняття у вас немає ніякого способу налагодити роботу тих навичок, які ви так наполегливо набули.
richard1941

@ richard1941: В університеті немає наміру застосовувати до галузі саме ті технології, яких ти вивчив на уроці.
Метт Столяр

5

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

Редагувати:
http://en.wikipedia.org/wiki/Compatibility_of_C_and_C%2B%2B показує деякі основні відмінності


Чи можете ви детальніше розповісти про "достатню різницю"?
Марк


2
Будь-який компілятор C ++ також буде компілювати C - зазвичай режим компілятора буде автоматично обраний на основі розширення імені файлу, але кожен компілятор також має можливість застосувати режим C або C ++ незалежно від імені файлу.
Майкл Берр



3

Я спізнююся на цю вечірку, але для будь-яких майбутніх людей у ​​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. Все, що існує сучасне, відстало від VC. Для C ++ це здорово ... Для C це жахливо.
zeboidlund

0

Це зводиться до того, що ви використовуєте на уроці.

Якщо лабораторії та завдання знаходяться в Linux, ви, мабуть, хочете рішення MinGW. Якщо вони у вікнах, придбайте Visual Studio Express.


0

Ви не можете отримати безкоштовну версію додатку для учнів Visual Studio у вашій школі? Більшість університетів мають програми для надання безкоштовного програмного забезпечення студентам.


1
Ні він не правий. Існує спеціальна програма під назвою "Іскра мрії", не те, щоб я підтримував таку підступну річ Microsoft.
Метт Столяр

0

Ви маєте на увазі Dev-C ++ Bloodshed's? Це приємний візуальний IDE для C ++, який використовує gcc MinGW для Windows як компілятор заднього сценарію. Проект на деякий час був покинутий (на мою думку, використання Delphi для розробки ID + C ++ - дуже дурна річ, щоб привернути увагу розробників), проте нічого не заважає вам використовувати його та оновлювати версію gcc MinGW it використовує до останнього - крім того, це ліцензія GPL.


0

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


-1

Обов’язково працюватимуть компілятори Windows C ++.

Також перегляньте MinGW .


6
C! = C ++. Існують такі відмінності, що не весь C код навіть буде компілюватися в C ++.
tloach
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.