Для того, чтобы писать программы на C/C++ обычно достаточно установить какую-нибудь интерактивную среду разработки (IDE), например, Visual Studio или Eclipse, однако иногда (обычно в целях обучения студентов) требуется создавать программы в обыкновенном текстовом редакторе и компилировать приложение, используя консоль и компилятор gcc. В Unix системах он обычно установлен прямо «из коробки», а вот на Windows системах такой роскоши не наблюдается. Более того, у многих пользователей возникает множество проблем при установке компилятора. Поэтому нами было принято решение написать данную статью, чтобы помочь всем тем, кому пришлось или приходится мучаться с установкой этого компилятора на Windows.
Кстати, если вдруг на вашей Unix системе не установлен GCC, то поставить его можно командой sudo apt install gcc
, введя свой пароль и согласившись на установку.
0. Прежде чем поставить компилятор GCC
Перед тем как приступить к установке этого компилятора на ваш компьютер, убедитесь в том, что GCC ещё не установлен на нём. Для этого откройте консоль (нажмите Win + R, введите в появившемся окне cmd и нажмите клавишу Enter) и введите следующую команду: gcc --version
и нажмите Enter. Если компилятор уже установлен, то выполненная команда выдаст примерно следующую информацию:
gcc (GCC) 8.1.0 Copyright (C) 2018 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Если в окне консоли появилось сообщение с версией компилятора и другая информация о GCC (второй скриншот), значит компилятор уже установлен и больше дополнительно ничего делать не нужно. А вот если вывод командной строки такой:
"gcc" не является внутренней или внешней командой, исполняемой программой или пакетным файлом
— значит GCC ещё не установлен в системе, поэтому двигаемся дальше.
Появившееся окно консоли
GCC уже установлен
GCC не установлен
1. Скачиваем установщик компилятора
Чтобы поставить GCC на операционную систему Windows, необходимо скачать установочный файл для него. Сделать это можно здесь: equation.com/servlet/equation.cmd?fa=fortran. Найдите в таблице версию компилятора, которая вам больше нравится (мы рекомендуем скачивать самую последнюю, на текущий момент — это версия 8.2.0) и скачайте установщик для вашей системы (32 или 64 бит).
Выбор установочного файла
2. Установка GCC
После того, как файл был скачан, откройте в проводнике папку, в которую был скачан установщик и запустите его, кликнув по файлу дважды левой кнопкой мыши. Появится окно, требующее подтверждения действия. В нём нужно выбрать да (иначе ничего ставиться не будет).
Установщик начнёт работу и отобразит окно с консолью, а также окно с бежевым фоном, в котором попросит прочесть и принять (или отклонить) лицензионное соглашение. Нажимаем Accept.
Открывшееся окно с установщиком
Принимаем лицензионное соглашение
После этого установщик попросит выбрать путь для установки, предложив по умолчанию путь C:\mingw
. Если вам категорически не нравится этот путь — измените его на более подходящий на ваш взгляд, в противном же случае просто нажмите Install.
Выбор папки для установки
Теперь остаётся только дождаться окончания распаковки архивов и установки их на компьютер. Как только все файлы будут установлены, инсталятор сообщит об этом, после чего нужно будет нажать на кнопку Finish.
Распаковка файлов и установка
Окончание установки
3. Проверка установки
По завершении работы установщика перезагрузите компьютер и вновь откройте окно командной строки, введите команду gcc --version
и нажмите Enter. На этот раз ответ от этой команды должен будет совпадать со вторым скриншотом из пункта 0. Если это не так, то скорее всего работа установщика была некорректно или преждевременно завершена, так что просто начните установку заново.
GCC установлен
Поздравляем! Теперь на вашем компьютере установлен компилятор GCC и вы можете писать программы на языках C и C++, а компилировать их через командную строку!
4. Бонус. Компиляция программ с помощью GCC
Теперь, когда у вас установлен компилятор GCC, вы можете создавать программы на C/C++, используя только текстовый редактор и консоль. Для этого создайте новый файл и назовите его как угодно (например, hello_world). Задайте ему расширение .c
вместо .txt
. Напишите (или скопируйте) текст программы на С в этот файл. Откройте командную строку (Win + R, cmd) и введите следующую команду gcc hello_world.c
и нажмите Enter. Если код не содержит ошибок, то результатом команды будет пустота. В противном же случае вы увидите все ошибки, который нашёл компилятор в программе с указанием места этой ошибки. При этом в проводнике появится файл a.out.exe
, который будет являться исполняемым файлом для написанной программы. Чтобы запустить его введите в консоли a.out
(для Unix-систем нужно писать ./a.out
) и нажмите Enter.
Что ещё за a.out? Непонятно!
По умолчанию при компиляции программ GCC в качестве результата создаём исполняемый файл с именем a.out (если такой уже есть, то b.out и т.д.). Это может быть не очень удобно, если у вас в папке лежит сразу много программ, которые нужно скомпилировать и затем запустить. Неудобно хотя бы тем, что разобраться, что такое a.out, а что такое b.out и c.out может быть непросто. Именно поэтому мы рекомендуем компилировать программы с явным указанием имени выходного файла. делается это так: gcc имя_файла.c -o имя_программы
.
В результате выполнения такой программы вместо a.out будет создаваться файл с именем, заданным в имя_программы. Например, если для файла hello_world.c мы хотим получить программу hello, то компилировать нужно такой командой: gcc hello_world.c -o hello
.
Результат компиляции и запуска программы
Используя понятные имена выходных программ (исполняемых файлов), вы гарантируете себе простоту работы и сокращение времени на разбирательство спустя долгое время.
Возможно, также будет интересно: как установить Sublime Text для работы с C/C++.
Программист, сооснователь programforyou.ru, в постоянном поиске новых задач и алгоритмов
Языки программирования: Python, C, C++, Pascal, C#, Javascript
Выпускник МГУ им. М.В. Ломоносова
The easiest way to get TDM-GCC is via an installer.
Download a TDM-GCC installer: | |
---|---|
tdm-gcc-webdl.exe |
Minimal online installer. Select the components you want, and it downloads and unpacks them. Either edition, latest release only. (GCC 10.3.0) |
tdm64-gcc-10.3.0-2.exe |
64+32-bit MinGW-w64 edition. Includes GCC C/C++, GNU binutils, mingw32-make, GDB (64-bit), the MinGW-w64 runtime libraries and tools, and the windows-default-manifest package. |
tdm-gcc-10.3.0.exe |
32-bit-only MinGW.org edition. Includes GCC C/C++, GNU binutils, mingw32-make, GDB (32-bit), the MinGW.org mingwrt and w32api packages, and the windows-default-manifest package. |
The following links are for TDM-GCC releases since the TDM-GCC 9 series. Older
versions are still available on SourceForge:
TDM-GCC files.
TDM Distributed Package | Binaries | Sources |
---|---|---|
GCC, TDM32 or TDM64 | Github:jmeubank/tdm-gcc-src/releases | Github:jmeubank/tdm-gcc-src/tree/tdm-patches.public |
GCC, MinGW.org | OSDN:mingw/releases/p15691 | OSDN:mingw/releases/p15691 |
GNU binutils (TDM64) | Github:jmeubank/tdm-binutils-gdb/releases | Github:jmeubank/tdm-binutils-gdb/tree/tdm-patches-binutils.public |
GNU binutils (MinGW.org) | OSDN:mingw/releases/p15608 | OSDN:mingw/releases/p15608 |
GDB (TDM32, TDM64) | Github:jmeubank/tdm-binutils-gdb/releases | Github:jmeubank/tdm-binutils-gdb/tree/tdm-patches-gdb.public |
GDB (MinGW.org) | SourceForge:mingw/files/MinGW/Extension/gdb/ | SourceForge:mingw/files/MinGW/Extension/gdb/ |
MinGW-w64 runtime libraries and tools (TDM64) | Github:jmeubank/mingw-w64/releases | Github:jmeubank/mingw-w64/tree/tdm-patches |
MinGW.org runtime and w32api libraries | OSDN:mingw/releases/p15587 | OSDN:mingw/releases/p15587 |
Windows default manifest (TDM32, TDM64) | Github:jmeubank/windows-default-manifest/releases | Sourceware.org:git/cygwin-apps/windows-default-manifest |
mingw32-make | SourceForge:mingw/files/MinGW/Extension/make | SourceForge:mingw/files/MinGW/Extension/make |
If you want to run C or C++ programs in your Windows operating system, then you need to have the right compilers.
The MinGW compiler is a well known and widely used software for installing GCC and G++ compilers for the C and C++ programming languages.
But many devs face difficulties when installing the compiler, so I am going to show you all the steps to do so in this article with screenshots to help you get it done.
I will be using Windows 11, but the same process is applicable for all other Windows operating systems unless you are using Windows XP (You need to change some steps in Windows XP).
If you’d like to watch the video I made on this topic as well, here it is:
Install MSYS2
Firstly we need to download an executable file from MSYS2. Go to the official website of MSYS2: https://www.msys2.org/. The website looks like below as of today.
Scroll down a little bit until you find the download button for the executable file.
Simply click on the installer button and save the installer file in any place you want.
Finish downloading the executable file. It should not take much time depending on your internet speed.
After downloading the file, we will get this executable file.
Double click on the executable file. Then click Next
.
Keep the name as it is, and click Next
.
Keep all this as it is, and click Next
.
Give it some time to finish the installation process.
If you keep the checkmark, then the MSYS2 terminal will open once you click Finish
.
I prefer to do it this way, but if you want to do the remaining tasks later, then you need to open the terminal by yourself from the start menu.
In that case, you have to click the start button > Search for MSYS2
and click on the terminal like in the following picture:
Let me assume that we have opened the MSYS2 MSYS terminal successfully.
Apply the command pacman -Syu
to update the package database and the base packages.
Type Y
and press the enter key if you get this type of installation prompt.
Type Y
and press the enter key.
The terminal will be closed. We have to open the terminal manually and update the rest of the packages.
Click the start button.
Search the folder named MSYS2 64bit. Click on the folder to expand and get the terminal. Open the terminal by clicking MSYS2 MSYS.
Update the rest of the packages by applying the command, pacman -Su
. You might need to apply the command pacman -Sy
if the terminal tells you to do that.
If you get any installation prompt, then you need to type Y
or y
and press the enter key.
Wait a little to finish the installation.
Close the window after finishing the installation.
Install the GCC and G++ Compilers
Click the start button. Find the MSYS2 64bit folder. Click on that folder to expand it.
If you are using a 64 bit operating system like I am, then we need to use the MSYS2 MinGW x64 terminal. Click on the terminal to open that.
⚠️ But, if you are using a 32 bit operating system, then you have to use the MSYS2 MinGW x86 terminal. Then, you need to open that terminal.
As I am using a 64 bit operating system, I have opened the terminal for 64 bit. Apply the command pacman -S mingw-w64-x86_64-gcc
to install the compilers.
⚠️ If you are using a 32 bit operating system, then you have to apply the command pacman -S mingw-w64-i686-gcc
in your 32 bit terminal.
Wait for a little while.
Type Y
or y
and press the enter key if you get the installation prompts.
Give it some time to finish the installation process.
You’ve now finished installing the compilers.
How to Install the Debugger
If you are using a 64 bit operating system like I am, then you have to apply the command pacman -S mingw-w64-x86_64-gdb
.
⚠️ If you are using a 32 bit operating system, then you have to apply the command pacman -S mingw-w64-i686-gdb
in your 32 bit terminal.
If you get any installation prompt, then simply type Y
or y
and press the enter key.
Give it some time to finish the installation.
You can close the terminal.
How to Add the Directory to the Path of the Environment Variables
Open the file explorer.
I am assuming that you have installed the MSYS into the default directory like I have. If you used custom directories, then you need to go to the directory where you installed it.
If you are using a 64 bit operating system like I am, then go to the mingw64 folder.
⚠️ If you are using a 32 bit operating system, then go to the mingw32 folder.
We have to go to the binary folder now. Go to the bin folder.
⚠️ If you are using a 32 bit operating system, then you have to go into your mingw32 folder > bin folder.
Copy the directory.
⚠️ If you are using a 32 bit operating system, and you also installed the MSYS2 in the default directory, then your directory should be like the following:
C:\msys64\mingw32\bin
Open the Advanced System Settings. You can do that in many ways. A simple way is to simply click the start button and search for it like the below screenshot.
Click Environment Variables from the Advanced tab.
Click on Path and select that. Then click Edit.
A window will appear as below:
Click New.
A blank box will appear.
Paste the directory here.
Click OK.
Click OK.
Click OK.
If you want to get all the steps in a video, then you can watch this video as well.
Check the Install
Now it is time to check whether we have successfully installed all of the above or not.
Open the terminal / PowerShell / CMD and apply the commands serially:
For checking the GCC version:
gcc --version
For checking the G++ version:
g++ --version
For checking the GDB version:
gdb --version
Conclusion
I hope this article helps you install your compilers on the Windows operating system for C and C++ programs.
Thanks for reading the entire article. If it helps you then you can also check out other articles of mine at freeCodeCamp.
If you want to get in touch with me, then you can do so using Twitter, LinkedIn, and GitHub.
You can also SUBSCRIBE to my YouTube channel (Code With FahimFBA) if you want to learn various kinds of programming languages with a lot of practical examples regularly.
If you want to check out my highlights, then you can do so at my Polywork timeline.
You can also visit my website to learn more about me and what I’m working on.
Thanks a bunch!
Learn to code for free. freeCodeCamp’s open source curriculum has helped more than 40,000 people get jobs as developers. Get started
Цель статьи
Быстро, кратко, понятно описать свой личный опыт, что к чему (не супер программист, так что ввязывать в споры по типу, что один компилятор собирает программу на целых 20 килобайт меньше, итоговая программа быстрее на 200 миллисекунд или алгоритмы оптимизации лучше в Clang нежели в gcc, я не буду).
Просто кратко как, что сделать с чего начать и чем закончить.
Начало
Для начала стоит понимать, что gcc компилятор по сути сборник компиляторов для C/C++/D/Ada и др. (весь список или для любителей прямых источников) и в будущем, возможно других языков программирования. Хотя изначально разрабатывался только для C (первоначально аббревиатура расшифровывалась как GCC — GNU C Compiler (GNU компилятор для языки Си), а ныне GCC — GNU Compilers Collection (коллекция компиляторов) ).
Сама же приставка GNU отсылает нас к лицензии, используемой в данном проекте и к операционной системе GNU. Хотя скорее в целом к проекту GNU. Т.к. GNU является организацией по распространению и развитию open source решений.
Версии GCC
Так получилось, что изначально gcc идет исключительно под Linux/Unix подобные операционные системы, со всеми вытекающими несовместимостями с Windows окружением. Поэтому энтузиастами были собраны 2 различные версии GCC — Cygwin и MinGW.
Разница в том, что Cygwin эмулирует окружение Unix — подобных операционных систем прямо внутри Windows.
MinGW — по сути прямой (насколько возможно) порт GCC на Windows.
Я лично буду использовать MinGW т.к. привык к Windows, а на мой взгляд он чуть проще да и размеры бинарных файлов (исполняемых файлов) у него куда меньше т.к. отпадает нужна в эмуляции Unix-окружения.
Так что по сути и Cygwin и MinGW являются GCC компиляторами, но только это разные сборки сделанные по разным идеологиям и причинам.
Установка MinGW
Есть много вариантов (как и всегда для открытого ПО), но главных по сути 2:
-
Использовать MSYS пакетный менеджер (доступен для Windows)
-
Напрямую загрузить только MinGW.
Я буду действовать по наиболее простому и прямому пути без лишних «зависимостей» потому напрямую скачаю MinGW.
Страница для MinGW и репозиторий с готовыми билдами MinGW (ссылка взята со страницы для MinGW). Перейдя по ним, сразу видим много билдов, и с ходу не понятно какой выбрать. Но все просто. То что начинается с i686 (сильно упрощая — есть 32 bit версия компилятора), а то что начинается с x86_64 64 bit версия компилятора, действительная разница в том, что сборке в 32 bit версии не сможет генерировать 64 bit программы т.е. для ваших программ будет доступно максимум 4 Гб оперативной памяти (что для абсолютного большинства программ более чем достаточно).
Далее mcf/posix/win32. MCF — модель потоков GCC, Posix — порт предназначенный для опять же эмуляции Unix/Linux путей (но тут могу ошибаться т.к. сам не тестировал и не пробовал, что к чему). Win32 — название от winapi32, родной порт для Windows.
SEH/Dwarf — модель обработки исключений, но этот пункт имеет значение для более продвинутых останавливать не вижу смысла, проще — можно выбрать любой, когда поймете зачем он вам и в чем разница сами выберите нужный.
UCRT/MSVCRT — стандартная библиотека для языков и ее реализация. Для более менее правильно работы рекомендую MSVCRT т.к. используется стандартная библиотека времени выполнения от Windows. UCRT стандартная библиотека больше ориентированная для Linux/Unix систем т.к. для них изначально и разрабатывалась, хотя вполне работает и на Windows. Но со сборкой некоторых библиотек на C/C++ могут возникнуть проблемы.
Промежуточный итог
Это был крайне короткий и простой для понимания новичков, обзор, что к чему. Много мест где мог допустить неточность или ошибиться, но опять же вся информация из моего опыта работы с GCC.
Установка
Как такового процесса установки нет, т.к. это не в полном смысле программа или приложения, а просто собранные в архив бинарные файлы.
Но «установка» не сложна. Требуется лишь выбрать нужный каталог на вашем ПК, туда распаковать ранее скаченный архив и ВАЖНО! прописать к нему путь в системной переменной Path. Для чего это нужно, чтобы при вызове из командой строки фразы «gcc» операционная система понимала к какому именно файлу из тысяч других нужно обратиться.
Проще всего будет сделать через графический интерфейс самой Windows хотя можно и через командную строку.
-
Открыть мой компьютер (проводник) — корневой каталог где находятся диски или диск (Локальный диск (C:), Локальный диск (D:) — (если имеется) и др.).
-
Кликнуть ПКМ на любое свободное место и в выпадающем меню перейти в свойства.
-
Далее в перейти в дополнительные параметры.
-
Далее в переменные среды.
-
В разделе системные переменные найти в колонке «переменная» название Path, нажать на нее и далее нажать изменить.
-
И можете в начало а можете и в конец вставить полный путь к тому месту где у вас находится компилятор MinGW, например у меня это D:\mingw64. Главное вы НЕ ДОЛЖНЫ удалять или изменять содержимое данной переменной, а просто дополнить ее новым путем отделенным от других точкой с запятой (;), например D:\mingw64;C:\Program Files\Python312\Scripts. Но и в интернете есть куча более подробных статей на эту тему том числе со скриншотами и посвященными именно MinGW.
Итог
Установленный и настроенный MinGW. Чтобы убедиться, что вы все сделали правильно откройте командную строку и введите gcc —version если windows пишет что такой команды не существует значит, вы что-то сделали неправильно пересмотрите шаги. Если выведет информацию о текущей версии gcc компилятора и некоторые другие данные, значит gcc в вашей системе успешно установлен и готов к работе.
The following toolchain releases are available:
Binutils | GCC | Newlib | GDB | Download link |
---|---|---|---|---|
2.39 | 12.2.0 | msvcrt | 12.1 | mingw32-gcc12.2.0.exe (79 MB) |
2.30 | 9.1.0 | msvcrt | 8.3 | mingw32-gcc9.1.0.exe (69 MB) |
2.30 | 8.1.0 | msvcrt | 8.1 | mingw32-gcc8.1.0.exe (45 MB) |
2.24 | 4.8.1 | 7.6.1 | mingw32-gcc4.8.1.exe (107 MB) | |
2.2 | 4.7.2 | 7.5 | mingw32-gcc4.7.2.exe (51 MB) |
Recommended Tools
For optimal development experience, try
VisualGDB — our Visual Studio extension for advanced cross-platform
development that supports advanced code and memory analysis, easy integrated debugging, powerful custom actions and
much more:
Download
Read more