Как установить gcc на windows

Как установить gcc на windows

Для создания программ на Си необходим текстовый редактор, с помощью которого можно набрать исходный код. И также необходим компилятор, который принимает файл с исходным кодом на Си и компилирует его в исполняемый файл.

В качестве компилятора мы будем использовать наиболее популярный на сегодня компилятор gcc, который доступен для разных платформ. Более подобному информацию о GCC можно получить на официальном сайте проекта https://gcc.gnu.org/.

Набор компиляторов GCC распространяется в различных версиях. Одной из наиболее популярных версий является пакет средств для разработки от некоммерческого проекта Mingw-w64. Для установки соответствующего пакета компиляторов загрузим файл установщика по ссылке https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/installer/mingw-w64-install.exe/download

При запуске установщика откроется следующее окно:

Нажмем на кнопку Next > и перейдем к следующему шагу:

Если версия ОС 64-битная, то в поле Architecture следует выбрать пункт x86_64 . Остальные настройки оставим по умолчанию и нажмем на кнопку Next > . На следующем шаге укажем путь, по которому будет устанавливаться пакет:

Можно оставить настройки по умолчанию. И после перехода к следующему шагу собственно начнется установка.

После завершения установки на жестком диске по пути, которое было выбрано для установки, появятся все необходимые файлы компиляторов. В моем случае они находятся по пути C:Program Files (x86)mingw-w64i686-7.1.0-posix-dwarf-rt_v5-rev0mingw32in :

В зависимости от версии пакета точный путь может отличаться, но в любом случае все файлы будут располагаться по тому пути, который был указан на шаге установки.

В частности, файл gcc.exe как раз и будет представлять компилятор для языка Си.

Далее для упрощения запуска компилятора мы можем добавить путь к нему в Переменные среды. Для этого перейдем к окну Система -> Дополнительные параметры системы -> Переменные среды :

И добавим путь к компилятору:

Итак, компилятор установлен, и теперь мы можем написать первую программу. Для этого потребуется любой текстовый редактор для набора исходного кода. Можно взять распространенный редактор Notepad++ или даже обычный встроенный Блокнот.

Итак, создадим на жестком диске папку для исходных файлов. А в этой папке создадим новый файл, который назовем hello.c .

В моем случае файл hello.c находится в папке C:c.

Теперь определим в файле hello.c простейший код, который будет выводить строку на консоль:

Для вывода строки на консоль необходимо подключить нужный функционал. Для этого в начале файла идет строка

Директива include подключает заголовочный файл stdio.h, который содержит определение функции printf, которая нужна для вывода строки на консоль.

Далее идет определение функции int main(void) . Функция main должна присутствовать в любой программе на Си, с нее собственно и начинается выполнение приложения.

Ключевое слово int в определении функции int main(void) говорит о том, что функция возвращает целое число. А слово void в скобках указывает, что функция не принимает параметров.

Тело функции main заключено в фигурные скобки <>. В теле функции происходит вывод строки на консоль с помощью функции printf, в которую передается выводимая строка "Hello world!".

В конце осуществляем выход из функции с помощью оператора return . Так как функция должна возвращать целое число, то после return указывается число 0. Ноль используется в качестве индикатора успешного завершения программы.

После каждого действия в функции ставятся точка с запятой.

Теперь скомпилируем этот файл. Для этого откроем командную строку Windows и вначале с помощью команды cd перейдем к папке с исходным файлом:

15 декабря 2018

Время чтения: 5 минут

Для того, чтобы писать программы на C/C++ обычно достаточно установить какую-нибудь интерактивную среду разработки (IDE), например, Visual Studio или Eclipse, однако иногда (обычно в целях обучения студентов) требуется создавать программы в обыкновенном текстовом редакторе и компилировать приложение, используя консоль и компилятор gcc. В Unix системах он обычно установлен прямо "из коробки", а вот на Windows системах такой роскоши не наблюдается. Более того, у многих пользователей возникает множество проблем при установке компилятора. Поэтому нами было принято решение написать данную статью, чтобы помочь всем тем, кому пришлось или приходится мучаться с установкой этого компилятора на Windows.

Читайте также:  Блок питания 80 plus bronze

Кстати, если вдруг на вашей Unix системе не установлен GCC, то поставить его можно командой sudo apt install gcc , введя свой пароль и согласившись на установку.

0. Прежде чем поставить компилятор GCC

Перед тем как приступить к установке этого компилятора на ваш компьютер, убедитесь в том, что GCC ещё не установлен на нём. Для этого откройте консоль (нажмите Win + R, введите в появившемся окне cmd и нажмите клавишу Enter) и введите следующую команду: gcc —version и нажмите Enter. Если компилятор уже установлен, то выполненная команда выдаст примерно следующую информацию:

Если в окне консоли появилось сообщение с версией компилятора и другая информация о 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 и вы можете писать программы на языках 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 .

Используя понятные имена выходных программ (исполняемых файлов), вы гарантируете себе простоту работы и сокращение времени на разбирательство спустя долгое время.

Программист, сооснователь programforyou.ru, в постоянном поиске новых задач и алгоритмов

Языки программирования: C, C++, Pascal, C#

Студент МГУ им. М.В. Ломоносова

А Вы знаете, что мы пишем программы на C, C++, C#, Pascal и Python?

Так что если Вам нужно написать программу на C/C++, C#, Pascal или Python — мы с радостью поможем с этим!

В том числе мы занимаемся репетиторством по информатике и программированию, а также готовим к ОГЭ и ЕГЭ!

Почему именно мы?

  • Более 1800 выполненных заказов;
  • Более 170 отзывов;
  • Качественное решение
  • Короткие сроки и привлекательные цены
  • Различные акции и скидки

Как с нами связаться?

  • группа Вконтакте: vk.com/programforyou
  • наша почта: order@programforyou.ru

Programforyou — позвольте нам писать код для вас и вы получите качественное решение в короткие сроки по привлекательной цене!

В сети можно найти много описаний сборки mingw и GNU утилит под ним. Я тоже решил написать свой вариант, так как во-первых он на русском. Во-вторых используются последние стабильные исходники (по состоянию на 27.01.2011). В третьих добавлена оптимизация циклов (graphite loop optimizations). В четвертых я описываю причины выбора тех или иных опций конфигурации исходников. В пятых, чтобы не забыть.

Зачем собирать mingw самому?

  • Для того, чтобы сконфигурировать компоненты так как нужно мне, а не той тысяче пользователей, которые скачивают стандартный пакет с официального сайта.
  • Чтобы я сам определял какие компоненты мне нужны в виде shared библиотек с dll-ками, а какие я линкую статически.
  • Чтобы быть уверенным, что gcc работает максимально эффективно.
  • Чтобы исключить возможные закладки в исполняемые модули.
  • Чтобы лучше понять как собираются и устанавливаются GNU утилиты.

Каждый может найти причину для собственноручной сборки.

Что понадобится?

Как ни странно, но для сборки mingw нужен сам mingw. Товарищи постарались и сделали аккуратную программу установки, которая сама скачает и установит нужные пакеты. Она лежит на официальном сайте.
Помимо самого mingw при установке выбираем «C++ Compiler» и «MinGW Developer ToolKit». Ставим в C:MinGW.

Не обойтись без терпения, настойчивости и удачи!

Сборка

Создаем на самом быстром винчейстере рабочую папочку C:mbuild. Все исходники складываем в C:mbuilddistrib. Выращивать mingw будем в C:mbuild
elease. Запускаем скачанный msys…

Небольшое замечание. В большинстве инструкций сказано сложить исходники gmp, mpfr и mpc в папку к gcc — он соберет их автоматически. Мы так делать не будем, потому что ходим прикрутить к gcc CLooP, а он зависит от gmp. То есть нам придется собирать gmp до того, как мы приступим к конфигурации gcc.

tar -xjf distrib/gmp-5.0.1.tar.bz2 && cd gmp-5.0.1
mkdir build && cd build
../configure —prefix=’/c/mbuild/release’ —enable-cxx —disable-static —enable-shared CPPFLAGS=’-fexceptions’ &>config.my.log
make -j4 &>make.my.log
make install &>install.my.log

  • —enable-cxx CPPFLAGS=’-fexceptions’ — Обязательны для корректной сборки ppl
  • —disable-static —enable-shared — В windows нельзя одновременно иметь shared и static версии, иначе сборка дальнейших компонентов может завершиться ошибкой. Будем собирать shared версии. Не волнуйтесь, на компилируемые с помощью mingw программы зависимость не переносится.

Очень важно не использовать ключи оптимизации CFLAGS, CXXFLAGS и LDFLAGS такие как "-s -O2 -mtune=i686" — бывали случаи когда ppl из-за этого не находил gmp.

tar -xjf ../../distrib/ppl-0.11.tar.bz2 && cd ppl-0.11
mkdir build && cd build
../configure —prefix=’/c/mbuild/release’ —disable-static —enable-shared —disable-nls —enable-threads —disable-debugging —with-gmp-prefix=/c/mbuild/release —with-cflags=’-s -O2′ —with-cxxflags=’-s -O2′ &>config.my.log
make -j4 &>make.my.log
make install &>install.my.log

  • —disable-static —enable-shared — какой вариант линковки мы выбрали для gmp такой же следует выбрать и для ppl.
  • —disable-nls — отключая National Language Support не будем требовать от приложения умения общаться на русском.
  • —enable-threads — создаваемый mingw я буду использовать для компиляции многопоточных приложений.
  • —disable-debugging — отладочная информация ни к чему — она занимает лишнее место.
  • —with-gmp-prefix — сообщит где искать gmp.
  • —with-cflags —with-cxxflags — некоторая оптимизация.
Читайте также:  Как вставить определенное количество строк в excel

Во время конфигурирования windows может сообщать о том, что программа conftest не запустилась. Не паникуйте — это всего лишь результат работы скрипта configure.

CLooG/PPL

tar -zxf ../distrib/clog-ppl-0.15.10.tar.gz
cd cloog-ppl-0.15.10
mkdir build && cd build
../configure —prefix=’/c/mbuild/release’ —disable-static —enable-shared —with-ppl=/c/mbuild/release —with-gmp=/c/mbuild/release CFLAGS=’-s -O2′ CPPFLAGS=’-s -O2′ &>config.my.log
make &>make.my.log

Опции понятны из предыдущих описаний.

tar -xjf distrib/mpfr-3.0.0.tar.bz2 && cd mpfr-3.0.0
mkdir build && cd build
../configure —prefix=’/c/mbuild/release’ —disable-static —enable-shared —enable-thread-safe —with-gmp=/c/mbuild/release CFLAGS=’-s -O2′ CPPFLAGS=’-s -O2′ &>config.my.log
make -j4 &>make.my.log
make install &>install.my.log

tar -xzf distrib/mpc-0.8.2.tar.gz
cd mpc-0.8.2
mkdir build && cd build
../configure —prefix=/c/mbuild/release —disable-static —enable-shared —with-gmp=/c/mbuild/release —with-mpfr=/c/mbuild/release CFLAGS=’-s -O2′ CPPFLAGS=’-s -O2′ &>config.my.log
make -j4 &>make.my.log
make install &>install.my.log

LIBICONV

tar -xzf distrib/libiconv-1.13.1.tar.gz && cd libiconv-1.13.1
mkdir build && cd build
../configure —prefix=/c/mbuild/release —enable-shared —disable-static —disable-nls CFLAGS=’-s -O2 -mno-cygwin’ CPPFLAGS=’-s -O2 -mno-cygwin’ &>confgi.my.log
make -j4 &>make.my.log
make install &>install.my.log

Вообще, libiconv необязателен, но включить его поддержку желательно (очень полезно, если вы будете собирать другие gnu утилиты этим mingw).

  • CFLAGS=’-mno-cygwin’ Для того, чтобы libiconv корректно собирался под msys следует явно указать, что мы используем не CygWin.

BINUTILS

tar -xjf distrib/binutils-2.21.tar.bz2 && cd binutils-2.21
mkdir build && cd build
../configure —prefix=/c/mbuild/release —disable-nls —enable-threads —with-gmp=/c/mbuild/release —with-mpc=/c/mbuild/release —with-mpfr=/c/mbuild/release —with-ppl=/c/mbuild/release —disable-ppl-version-check —with-cloog=/c/mbuild/release —disable-cloog-version-check CFLAGS=’-s -O2′ CPPFLAGS=’-s -O2′ &>config.my.log
make -j4 &>make.my.log
make install &>install.my.log

INCLUDE

tar -xzf distrib/mingwrt-3.18-mingw32-src.tar.gz
cp -r w32api/include /c/mbuid/release
cp -r mingwrt-3.18-mingw32/include /c/mbuild/release

tar -xjf gcc-4.5.2.tar.bz2
cd gcc-4.5.2
mkdir build && cd build
../configure —prefix=/c/mbuild/release —enable-shared=libstdc++ —enable-threads —enable-version-specific-runtime-libs —enable-languages=c,c++ —with-dwarf2 —disable-sjlj-exceptions —disable-win32-registry —disable-werror —disable-nls —disable-multilib —with-gmp=/c/mbuild/release —with-ppl=/c/mbuild/release —disable-ppl-version-check —with-cloog=/c/mbuild/release —disable-cloog-version-check —with-mpfr=/c/mbuild/release —with-mpc=/c/mbuild/release —enable-libgomp —with-libiconv-prefix=/c/mbuild/release —enable-libstdcxx-debug —enable-cxx-flags=’-s -O2′ —with-boot-ldflags=’-s’ &>config.my.log
make -j4 BOOT_CFLAGS=’-s -O2′ BOOT_CPPFLAGS=’-s -O2′ &>make.my.log

cd i686-pc-mingw/libstdc++-v3
make -j4 CFLAGS=’-s -O2′ CXXFLAGS=’-s -O2′ &>make.my.log

Runtime и W32API

W32API

cd ../../w32api
mkdir build && cd build
../configure —prefix=/c/mbuild/release CFLAGS=’-s -O2′ CPPFLAGS=’-s -O2′ &>config.my.log
make &>make.my.log
make install &>install.my.log

MingwRT

tar -xzf distrib/mingwrt-3.18-mingw32-src.tar.gz && cd mingwrt-3.18-mingw32-src
mkdir build && cd build
../configure —prefix=/c/mbuild/release CFLAGS=’-s -O2′ CPPFLAGS=’-s -O2′ &>config.my.log
make &>make.my.log
make install &>install.my.log

Из-за того, что gmp собирался не родным gcc он, скорее всего, имеет зависимости от libstdc++.dll и libgcc_s_dw2-1.dll. Первая была собрана с родным gcc, вторую придется скопировать из старого mingw. Как вариант можно пересобрать gmp в новом gcc для избавления от завимисотей.
Для уменьшения размера можете смело поудалять ненужные папки. Например share/doc.

Почти все. Для комфортной работы нам надо еще собрать make.

tar -xjf distrib/make-3.82.tar.bz2 && cd make-3.82
./configure —disable-nls —with-libiconv-prefix=’/mingw’ CFLAGS=’-s -O2′ CPPFLAGS=’-s -O2′ &>config.my.log
make -j4 &>make.my.log
cp make.exe /c/mbuild/release/bin/mingw32-make.exe

Теперь все. в папочке C:mbuild
elease получили свой аккуратный mingw. Добавляем пакетов по вкусу, оборачиваем в аккуратный скрипт и получим что-то вроде nuwen mingw. Удачных сборок!

Постскриптум: Скачанный нами пакет mingw кроме того содержит:

  • mingw32-autoconf
  • mingw32-automake
  • mingw32-autotools
  • mingw32-basic-dsdtar
  • mingw32-bzip2
  • mingw32-cygutils
  • mingw32-expat
  • mingw32-gdb
  • mingw32-gendef
  • mingw32-gettext
  • mingw32-libarchive
  • mingw32-libtool
  • mingw32-mingw-get
  • mingw32-mingw-utils
  • mingw32-package-list
  • mingw32-pdcurses
  • mingw32-pexports
  • mingw32-popt
  • mingw32-pthreads-w32
  • mingw32-xz
Ссылка на основную публикацию
Как узнать песню если не знаешь названия
Знакомая ситуация: в голове крутится одна и та же композиция, но вспомнить название, хоть убей, не получается? Лайфхакер поможет определить...
Как удалить повторяющиеся значения в столбце excel
Доброго времени суток! С популяризацией компьютеров за последние 10 лет — происходит и популяризация создания отчетов (документов) в программе Excel....
Как удалить поиск в windows 10
Привет ребята Значит если вам надоел процесс SearchUI.exe, то пора от него избавляться. Как остановить службу SearchUI.exe? Вот тут к...
Как узнать пишущий ли дисковод на компьютере
Использование дисководов в компьютерах – DVD и CD-ROM – все дальше отходят на второй план. Но работа с ними для...
Adblock detector