Компилятор С для Windows: определение, правила установки и принцип работы
![]()
Обычно компилятор С для Windows ищут молодые разработчики, которые только начинают изучение С или С++ и решают программировать для это й операционной системы. Самый просто способ не искать компилятор С для Windows — это использовать для разработки «майкрософтовскую» среду разработки Visual Studio. В этой среде уже настроено все , что может понадобиться.
Однако есть смельчаки, которые хотят самостоятельно настроить окружение для сборки под Windows. Это можно делать, но нужно понимать, что одним компилятором здесь не обойтись . Помимо самого компилятора , вам понадоб и тся еще несколько дополнительных библиотек. Набор дополнительных библиотек будет зависеть от того, под какую архитектуру компьютера вы планируете разрабатывать, а иногда и под какую версию Windows. Это при условии, что компьютер у вас тоже работает под управлением Windows.
Как н и странно, но в Linux-системах легче настроить разработку под операционную систему Windows, настроив кросскомпиляцию , используя готовые сборки для подобной разработки.
Чуть ниже мы приведем ряд инструментов, которые могут понадобиться для развертывания собственного окружения для разработки под Windows ; там вы сможете выбрать и компилятор , и необходимые библиотеки. Причем представленный инструмент будет для разных операционных систем.
Библиотеки и компилятор С для Windows
- Open Watcom V2 Fork. Функциональный компилятор С, который можно использовать на Windows и Linux, при этом его можно использовать для разных архитектур компьютеров: 16, 32, 64-разрядные. Годится для разработки под Windows, Linux, MS-DOS.
- Microsoft Visual Studio Community. Комплекс инструментов для разработчика, куда входит IDE, отладчик, компилятор С/С++, редактор и др. Подходит для разработки под Windows и Android.
- Clang. Компилятор С/С++ и Objective-C, поэтому годится для разработки под Windows и частично под продукцию Apple.
- MinGW-w64. Набор библиотек, необходимых для компиляции С и С++. Этот набор библиотек применим со многими известными компиляторами. В наборе есть библиотека , при помощи которой можно компилировать программы из Linux под Windows.
- AMD x86 O pen64 Compiler Suite. Набор компиляторов С/С++ для процессоров AMD 32 и 64-битных архитектур. Внутри набора , помимо компиляторов , располагаются все необходимые библиотеки. Подходит для разработки под Windows, но работает на Linux.
- С/С++ Open Source Watcom. Компилятор С/С++ для Windows 7 , п оэтому любители этой операционной системы могут взять его на вооружение.
- UPS Debugger. Отладчик исходного кода под Windows 10, в котором встроен интерпретатор С. Работает во многих операционных системах.
- BDS C Compiler. Распространяется со встроенным исходным кодом языка ассемблера. Подходит для Windows с разными архитектурами.
- С/С++ Bloodshed Dev. Полноценная среда разработки Win32, внутри которой спрятан компилятор С/С++, отладчик кода, редактор и другие инструменты для работы на Windows.
- С Orange. Компилятор С, работающий в Windows и в DOS. Вмест е с компилятором поставляется функциональный редактор кода. Подходит для генерации программ для Win32, MS-DOS, Intel, Motorola hex.
- Tiny C Compiler. Компактный компилятор С для Линукс и Windows, генерирует документы для архитектуры х86.
- Portable Object Compiler. Набор библиотек и инструмент ов для конвертации кода Objectiv e -C в С. Работает на Линукс и Windows.
- Dev-С++. Полноценная среда разработки со встроенным компилятором С и С++. Р аботает на Windows.
- Codepad;
- CPP.sh;
- Jdoodle;
- C++ Tutor;
- и др.
Заключение
Компилятор С для Windows нужно выбирать, отталкиваясь от уровня и типа поставленных задач. Если планируется профессиональная разработка большого приложения на С/С++, тогда имеет смысл задуматься об установке комплексного решения, куда входит компилятор, редактор, отладчик и др. Если в планах только попробовать разработку на С/С++, чтобы понять , подойдет/не подойдет, или разработка небольших программ, тогда воспользуйтесь онлайн — компиляторами.
Мы будем очень благодарны
если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.
Какой компилятор выбрать для C++?
Решил выйти за пределы паскаля и начать изучение C++. Какие посоветуете компиляторы, и чем они отличаются?
ОС: Windows.
- Вопрос задан более трёх лет назад
- 13472 просмотра
Комментировать
Решения вопроса 1
Владимир Мартьянов @vilgeforce
Раздолбай и программист
Visual Studio ставьте и не задавайтесь этим вопросом в ближайшие пару лет.
Ответ написан более трёх лет назад
Нравится 5 6 комментариев

Только VS это IDE. В комплекте которого есть компилятор от майкрософта. Но его можно подключить к другой IDE, равно как и в VS можно подключить другой компилятор. Но сути это не меняет — новчикам — VS/

GavriKos: VS — это не только IDE. Это еще и приговор для кругозора. Жесткое ограничение его одной платформой и, как результат, неумение обойтись без Студии в работе.
Я бы рекомендовал QtCreator, но школяры такие советы все равно не слушают. Винда же — эталон, мы все так говорим.
Владимир Мартьянов @vilgeforce
Adamos: Студия — отличная IDE, и то, что после нее не пересесть на всякие там Eclipse и прочее жабное овно — не проблема студии, а проблема жабного овна.

Владимир Мартьянов: совершенно не собираюсь спорить с вашим экспертным мнением о говне, но специалист, который умеет работать только одним инструментом, достаточно красочно описан еще Прутковым.
Владимир Мартьянов @vilgeforce
Adamos: Пруткова читал, вопрос про целевую платформу не читал, а уже начинаете про кругозор.

Владимир Мартьянов: в вопросе говорится о том, на чем студент сидит, а не о том, подо что ему придется писать, когда (и если) он таки научится. Тем более, что он и сам этого знать не может. Впрочем, пополнив стройные ряды программистов на ВижуалСтудии, он сильно затруднит себе выбор.
Ответы на вопрос 1

Гуглю за еду
Самый древний и популярный компилятор — это GCC. Он поддерживает миллиард платформ, хорошо фичи новых стандартов умеет, стабильный, быстрый. Классика, работающая всегда и везде. Версия для винды ставится либо из Mingw-w64, он довольно прилично отстаёт от основной ветки, но работает неплохо. Либо можно поставить из пакета MSYS2, там всё свежее и постоянно обновляется.
Visual Studio — если вы начнёте с неё, то потом будет очень тяжело перейти на другой компилятор, всё будет непривычно и ничего не будет работать. Ибо вижуал студия подразумевает тесную интеграцию IDE и компилятора. Ко всему прочему, если вы пишете код в вижуал студии и он компилируется, это ещё не значит, что код соответствует стандартам, и будет компилироваться где-либо ещё. Так как майкрософты, по классике, клали большой и толстый на все эти ваши стандарты. Да, IDE у них более-менее юзабельная, но у компилятора своя атмосфера.
Ну, и самый, на мой взгляд, прогрессивный и удобный компилятор — clang. Очень молодой, но очень фичастый. Очень удобные сообщения об ошибках, всё понятно и наглядно. Поддерживает даже черновики и пропозалы новейших стандартов. Для новичка, более чем, рекомендую! Поставить его для винды можно всё из того же пакета MSYS2. Можно, конечно, качать сборку с официального сайта, но она не всё поддерживает в винде. Ещё есть вариант поставить clang вместе с Visual Studio 2017 Community. Там есть такая фича, не пробовал, правда, но в теории, должно работать.
В качестве IDE ещё могу посоветовать Clion. Крутая штука, хоть и тормознутая малость. Из мелких и легковесных — juci. Очень шустрая современная штука, правда, пока не особо чего умеет.
Так же, для обучения сразу включайте все ворнинги, все ошибки, отключайте расширения компиляторов. Ибо привыкните к ним, а потом поймёте, что это не стандарт и будет очень непривычно.
Лучшие компиляторы кода для C++

Разработка программного обеспечения — дело трудоемкое. Нужно выбрать язык, составить алгоритм, написать код, скомпилировать его, найти ошибки в синтаксисе и логике, исправить и снова скомпилировать… Стоп, вы не знаете, что такое компилятор? Тогда один момент — погодите немного, и мы все вам расскажем. Ведь вся сегодняшняя статья посвящена обзору лучших компиляторов на C++.
Детям из Мариуполя нужно 120 ноутбуков для обучения — подари старое «железо», пусть оно работает на будущее Украины
Что такое компилятор C++?
Итак, давайте начнем с основ. Любой компьютер понимает только машинный код или ассемблер, который состоит из нулей и единиц. Это самый низкий, базовый уровень работы компьютера. Однако программировать таким образом весьма сложно и неудобно. Даже использовать низкоуровневый ассемблер — это то еще удовольствие. Хотя, впрочем, на нем есть даже своя операционная система.
Однако большинство разработчиков предпочитают высокоуровневые языки программирования, такие как C++. «Высокий уровень» означает, что они работают на уровне операционной системы, а не машинных кодов. И вот именно компилятор обеспечивает взаимодействие между кодом на C++ или любом другом высокоуровневом языке, и собственно, машинным кодом. Это утилита-посредник, которая обеспечивает преобразование вот такого кода:
Курс Англійської.
Навчання для різних цілей та рівнів: робоча англійська, початковий рівень, курси для дітей та підлітків.
#include int main()
Примерно в такой, понятный процессору:
global _main extern _GetStdHandle@4 extern _WriteFile@20 extern _ExitProcess@4 section .text _main: ; DWORD bytes; mov ebp, esp sub esp, 4 ; hStdOut = GetstdHandle( STD_OUTPUT_HANDLE) push -11 call _GetStdHandle@4 mov ebx, eax ; WriteFile( hstdOut, message, length(message), &bytes, 0); push 0 lea eax, [ebp-4] push eax push (message_end - message) push message push ebx call _WriteFile@20 ; ExitProcess(0) push 0 call _ExitProcess@4 ; never here hlt message: db 'Hello, World', 10 message_end:
Подобным образом работают и другие языки, к примеру, Python, JavaScript и так далее. Только они преобразовываются сначала в C++, а уже затем в ассемблерные коды. Подробно разобраться в этих моментах помогут специальные курсы.
И потому важным вопросом был, есть и остается — какой же компилятор C++ самый лучший. Сегодня мы постараемся подробно разобрать эту тему и выяснить ответ.
Как скомпилировать С++?
Компиляция кода требует от программиста некоторых действий, а также отдельную программу — интегрированную среду разработки или Integrated Development Environment (сокращенно IDE). Они бывают разные, могут включать в себя текстовые редакторы и дополнительные инструменты для упрощения разработки. Подробнее об этом мы поговорим чуть позже, а пока вернемся к базовым моментам.
Для компиляции нужно взять файл с кодом, запустить компилятор и указать ему путь к этому файлу. Также можно подключить библиотеки и сторонние компоненты. Разумеется, в современных средах разработки большинство задач автоматизировано — нужно лишь в начале указать параметры настройки, после чего можно компилировать программу.
После запуска интерпретатор «разберет» код, найдет там команды, флаги и другие элементы, подключит библиотеки и переведет данные в машинный код, после чего сформирует готовый исполняемый файл. Само собой, если в коде нет ошибок. Но, как известно, они там есть всегда — если их нет в коде, то они в компиляторе (шутка).
После этого скомпилированной программой уже можно пользоваться.
Рейтинг компиляторов и IDE для C++: ТОП лучших
Ну вот мы и подобрались к самому интересному — топовым решениям для разработки и компиляции. В этом разделе мы обсудим самые лучшие решения, имеющиеся на рынке сегодня.
Visual Studio Code
Наверное, нет такого рейтинга IDE, где бы не было упоминания Visual Studio. Эта среда разработки по праву занимает первое место, и вовсе не потому, что ее разработали в Microsoft. Просто это один из самых стабильных продуктов в данном сегменте, который также обладает целой уймой достоинств.
Курс Python.
Цю мову програмування використовують від базових концепцій до складних застосувань у сферах штучного інтелекту. Після проходження курсу гарантовано отримай роботу в ІТ.

В числе таковых отметим функции умного дополнения кода, подсветку синтаксиса многих языков, возможности рефакторинга и отладки кода, система контроля версий «из коробки», кроссплатформенность, обилие языков и так далее.
В списке поддерживаемых языков программирования отметим ASP.NET, Visual C++, C, C++, C#, Java, JavaScript, Python, PHP, TypeScript, Go, HTML, DHTML, Visual Basic, Visual F#, XAML и многие другие. Также в этой среде используется собственный компилятор MSVC.
Плюсы:
Какой выбрать C++ компилятор под Windows?
Я изучаю С++ и мне нужен компилятор. Звучит странно?
Ищу не среду разработки, а именно компилятор для компиляции C++ модулей.
Есть две проблемы:
A) Как новичок в C++, я плохо ориентируюсь инструментах
B) Пересмотрев разные компиляторы, я не смог выбрать нужный
Вот какие критерии:
1) компиляция под MS Windows (32bit, 64 bit)
2) компиляция из командой строки (это основной режим работы)
3) устанавливается на машине БЕЗ интернета (к сожалению, бесплатный Visual C++ здесь не подошел)
4) C++ компилятор д.б. универсальным, т.е. не требовать свои IDE или библиотеки.
5) Д.б. поддержка официального стандарта C++11 или выше
Схема работы будет такой: В репозитарий поступают C++ модули(некие тесты), которые нужно откомпилировать, запустить и вернуть результат тестов.
Пожалуйста, посоветуйте инструменты.
- Вопрос задан более трёх лет назад
- 35403 просмотра
12 комментариев
Средний 12 комментариев

Брось, пустое всё это. Иди, поиграйся.


Roman @myjcom Куратор тега C++
Я изучаю С++ и мне нужен компилятор. Звучит странно?
Ищу не среду разработки, а именно компилятор
А то тут не знают, что такое компилятор. А еще вам нужен линкер и дебаггер.
Artem @ArtemITS Автор вопроса
longclaps , Roman
Честно, не ожидал на вопрос о C++ компиляторе (а что может быть безобидней) получить в ответ 100% офтопик и сарказм.
.
:-((
пытаюсь осмыслить, что сподвигло. может моя фраза “Звучит странно?” неудачно интерпретирована .

Roman @myjcom Куратор тега C++
Artem @ArtemITS Автор вопроса
Roman,
к сожлению, ваша ссылка никак не проясняет ситуацию.
Т.к. в топик-посте(см.выше), я написал критерии:
.
пункт-3: C++ компилятор д.б. на машине БЕЗ интернета (к сожалению, Visual C++ здесь не подошел)
пункт-4: C++ компилятор д.б. универсальным, т.е. не требовать свои IDE, фреймворки, библиотеки
.
Artem @ArtemITS Автор вопроса
«Нарушаете -> правила 2.2»
Читаем пункт правил 2.2:
Убедиться в том, что в сети Интернет, и на страницах Сервиса в частности, отсутствуют ответы на данный вопрос.
Ну, я соглашусь, но сначала покажите где «в Интеренете» есть ответ на мой вопрос.
Заранее благодарен.

Roman @myjcom Куратор тега C++
Artem, windows XP? 7, 10? Server? Интернета нет, а права на установку софта есть?
Возможность использовать https://docs.microsoft.com/ru-ru/virtualization/hy.
есть? Что значит
не требовать свои IDE, фреймворки, библиотеки

Roman @myjcom Куратор тега C++
Artem, Кроме того
3) устанавливается на машине БЕЗ интернета (к сожалению, бесплатный Visual C++ здесь не подошел)
Почему (по какой причине) не подошел?
Create an offline installation of Visual Studio
Artem @ArtemITS Автор вопроса
windows XP? 7, 10? Server?
Window 7;
Пояснение: Это будет платформа, где работает C++ компилятор, значит на выходе получаются .exe-файлы (под Win7)
Здесь и далее, извиняюсь, что пишу «пояснение:», просто я вообще НЕ разбираюсь в C++
права на установку софта есть?
Полный админский доступ на компьютере.
Интернета нет
Это offline-компьютер.
К сожалению, у меня не получается поставить бесплатный Build Tools (от Microsoft.VisualStudio). Создаю Layout(установочных кэш), но он все равно потребует интернет-активацию.
Возможность использовать Hyper-V в Windows10?
Не знаю. Пока не разбираюсь в теме.
Мне всего лишь нужен C++ компилятор(что может быть безобидней), а в виртуальных машинах я точно запутаюсь.
:-(((
Что значит: не требовать свои IDE, фреймворки, библиотеки
Это значит, что буду писать модули на C++ коде, который не привязан к какой-либо платформе. Поэтому, желательно убрать библиотеки Linux, Windows, .NET, Android и др. . в Microsoft.VisualStudio набирается аж 30 Gb.
🙁
Мне нужен только STL (как у Страуструпа или в официальном ISO-стандарте).
Ну, не знаю, как это объяснить. Например, чтоб написать “Hello Word” в поток, ведь не надо 30 Gb платформенных библиотек ?
:-(((((
Заранее спасибо за любой ответ по существу.

Roman @myjcom Куратор тега C++
Artem @ArtemITS Автор вопроса
Почему (по какой причине) не подошел?
Create an offline installation of Visual Studio
К сожалению, политика MS в любом случае, требует активацию продуктов, в т.ч. для бесплатного VS. Они всего лишь дают 30 дней отсрочки, за это время надо подключить интернет или активировать(бесплатный VS) другим способом.
Т.е. их «offline installation» не освобождает от необходимости активировать продукт.
Artem @ArtemITS Автор вопроса
All-in-one Windows installer
Ух, кажется то, что надо. Большое Вам спасибо, за профессионализм и терпение.
P.S.
Для сравнения, на соседних сайтах меня обругали тамошние “С++ профессионалы”. Больше к ним не пойду 🙁
Решения вопроса 0
Ответы на вопрос 3
Очень часто разработчики под windows с самого начала начинают работать с visual studio и с его немного несовместимым компилятором и std библиотеками, из-за чего последующие попытки собирать код из стандартного окружения порождают кучу работы, на нее забивают и продолжают сидеть на майкрософтовском.
Самостоятельная настройка окружения для сборки под windows тут возможна (без загрузки visual studio) но поверьте, вам не захочется вручную загружать и настраивать сотни пакетов, никто этой фигней не мается. Ставят visual studio с интерфейсом, а там никто не мешает использовать командную строку.
В общем случае, с вероятностью 99.9999999999%, вам будет НЕДОСТАТОЧНО только компилятора, вам нужны еще и библиотеки, настроенные на ваше окружение. Т.е. в зависимости от того под какую архитектуру и операционную систему вы собираете библиотеки/бинарники, и будет соответствующий ответ.
Наиболее полно готовый и почти настроенный тулчейн (почти и наверняка это будет gnu compiler, но ничто не помешает использовать clang) можно найти в linux операционных системах, т.е настроив кросскомпиляцию из linux окружения можно будет собирать все, кроме наверное macos (ну там свои заморочки и это не невозможно).
Только там, одинаково просто, можно будет собирать как windows приложения так и arduino скетчи.
p.s. для настройки linux дистрибутива интернет вам понадобится только что для поиска документации, репозитории (тех же debian/ubuntu) можно приобрести на компакт дисках или сделать свой offline инсталятор.
p.p.s. вы можете попытаться использовать windows 10 (не домашние) подсистему linux, установив в нее ту же ubuntu, и без каких либо накладных расходов (это не виртуалка, это скорее wine наоборот) работать
Ближайший аналог удобного окружения но под windows это mingw (много рукошевелений) и cygwin, последняя так вообще копирует linux, но там свои заморочки, например файловые пути в итоговом приложении для совместимости будут вида /cygdrive/c/. плюс совместимость dll своя, ни с чем не совместимая.