Хочу разработать несколько простых программ (калькулятор, текстовый редактор) на C (именно C, а не C++) под Windows 7/10/11. Какой компилятор и как установить?
P.S. Извиняюсь, если вопрос глупый, но разнообразие компиляторов для C меня сбило с толку :)
Почему же? Среда разработки много работы делает за программиста. В итоге начинающий программист порой даже не может разобрать, что значит ошибка в программе - IDE просто подсвечивала красным цветом, а при двойном нажатии ошибка сама исправлялась. Однако это не относится ко всем людям.
текстовый редактор может быть нетривиальным.
Да, может. Но я хочу разработать самый обычный (вроде Блокнота в Windows).
Успехов
Спасибо! А Вы ответите на вопрос или просто так написали? :)
Можно использовать wsl. Или установить MSYS2, и через его пакетный менеджер установить gcc/clang. Использовать компилятор, который идёт с Visual Studio, не рекомендую, т. к. он не поддерживает стандарт c11
Но не совсем согласен по MSVS. Да, микрософт официально стандарты Си не поддерживает, но большая часть стандарта С11 реализована. Не реализованы (или частично реализованы) какие-то не важные или не нужные с точки зрения MS вещи, например VLA (и правильно на мой взгляд) или complex.h (многие не знаю что это есть в стандарте).
Думаю для проектов ТС реализованного функционала будет вполне достаточно. Так что вполне рекомендую MSVS или Visual Studio Build Tools, как более легковесный вариант (только компилятор и сопутствующие утилиты без IDE). По моему компилятор микрософт наилучшим образом подходит для разработки под винду.
Конечно, если захочется проверки строго соответствия стандарту Си, то придется выбирать другой компилятор, т.к. микросовтовский просто не умеет это делать.
WSL - тут придется программировать под линукс, а не под винду. Внутрь линукса в WSL надо будет поставить штатными средствами линукса компилятор и т.п. WSL по сути виртуальная машина с линуксом, но плотно интегрированная в винду, поэтому работает быстро и возможно требует меньше ресурсов, чем типичные гипервизоры типа virtualbox и т.п. Могут быть определенные сложности с GUI приложениями, хотя в последних версиях WSL уже можно получить рабочий стол линукса, но для этого надо предпринимать дополнительные телодвижения, т.к. по умолчанию никакой поддержки GUI нет. Тут вам придется писать программу именно для линукс (потом можете ее запускать на обычном линуксе), WinAPI будет не доступно.
msys2+mingw/clang - альтернативный вариант. Поддержка компиляторами стандартов Си, возможность использования WinAPI - все присутствует.
res2001, Может быть что-то поменялось, но в последний раз, когда я под виндой компилировал сишный код, наткнулся на то, что компилятору не нравится объявления переменных не в начале функции. Пришлось ставить через msys mingw, чтобы не переписывать
Василий Дёмин, Могу точно сказать, что в MSVS 2017 этого уже не было.
У меня был кросс-платформенный проект с использованием С11 некоторое время назад и там мы его собирали в т.ч. и компилятором msvc 2017.
Вам нужно скачать либо Visual Studio Build Tools, либо MinGW-w64 и установить. У обоих есть пусковой пакетный файл, который установит все необходимые переменные окружения.
Любой современный ПК без проблем переварит обычный линукс в виртуалке - 0.5-1 гига памяти и одного ядра хватит вполне. Или же у вас ПК 15-20 летней давности? Если так - то да, тут уж виртуалка будет тяжестью для такого ПК.