SLUSAR.SU
Программируем на C. Установка и настройка компилятора СИ и С++ на windows по взрослому
Многие советую начинать свой путь в программирование именно с этого языка, когда-то созданного для UNIX, но в последствии захватившем все ОС.
Если вы знаете язык программирования Си, то вам не составит труда освоить такие языки, как С++, С#, Java и т.д. Он довольно легкий и удобный, именно поэтому так популярен среди программистов и хакеров.
Сегодня мы будем устанавливать компилятор языков Си и С++, писать нашу первую программу и компилировать ее в консоли. Меньше слов, больше инструкций. приступим.
Заходим на сайт mingw.org и скачиваем инсталлятор, для участников лиги лени вот прямая ссылка http://sourceforge.net/projects/mingw/files/latest/download?source=files.
Далее устанавливаем, при этом НЕ меняя путь установки, т.е. C:\WinGW.
Во время установки загружаются все необходимые файлы, поэтому необходимо иметь подключение к интернету.
По окончании установки запускаем программу и выбираем необходимые компоненты для установки, а именно:
mingw32-bace // компилятор Си
mingw32-gcc-g++ //компилятор С++
Далее в верхнем меню выбираем Installation и выбираем Apply Changes и в появившемся окне жмём Apply, после чего подгрузятся и установятся компиляторы.
Проверяем наличие компиляторов после установки, зайдя в папку C:\WinGW\bin\, в частности нам нужен gcc. Ок, компилятор на месте, приступим к прописыванию системного пути к нему.
Жмём Пуск -> Панель Управления -> Система -> Дополнительные параметры системы -> во вкладке «дополнительно» внизу жмем «Переменные среды». Выделяем PATH и жмем изменить.
Переходим в конец строки «Значение переменной» и после точки с запятой прописываем относительный адрес к папке с компиляторами C:\WinGW\bin и все, без никаких знаков вконце и жмем ОК на всех окнах.
Все компиляторы установлены и настроены. В следующей статье мы напишем нашу первую программу.
- ← Якуб Розальски. На стыке двух времён
- Wanderers (Странники). Русский перевод. →
Язык C: введение и настройка среды
С — это компьютерный язык процедурного императивного программирования общего назначения. Он был разработан в 1972 году Деннисом М. Ритчи в исследовательском центре Bell Telephone Laboratories для создания операционной системы UNIX. В 1978 году Брайан Керниган и Деннис Ритчи подготовили первое общедоступное описание языка C, известное сегодня как стандарт K&R.
Операционная система UNIX, компилятор C и практически все прикладные программы UNIX были написаны на языке С. Он является наиболее широко практикуемым компьютерным языком. По частоте использования C разделяет первое место с Java, который также не менее популярен и очень распространен среди современных программистов.
Зачем его учить?
Знание языка C является обязательным для студентов и работающих разработчиков. Без него нельзя стать хорошим программистом, особенно в области разработки программного обеспечения.
Ключевые преимущества изучения C:
- доступный для понимания;
- хорошо структурированный;
- пригодный для разработки эффективных программ;
- позволяющий решать низкоуровневые задачи;
- поддающийся компиляции на различных компьютерных платформах.
Факты о C
- Изобретен для создания операционной системы UNIX.
- Стал преемником языка B, представленного примерно в начале 1970-х годов.
- Был формализован в 1988 году Американским национальным институтом стандартов (ANSI).
- Послужил для полного написания ОС UNIX.
- Является самым распространенным и популярным языком системного программирования на сегодняшний день.
- Использовался для реализации большей части современного программного обеспечения.
- Самые популярные сегодня Linux OS и RDBMS MySQL написаны на C.
Программы на C
Программа на языке C может состоять от 3 до миллионов строк и должна быть записана в один или несколько текстовых файлов с расширением “.c”; например, hello.c. Вы можете использовать “vi”, “vim” или любой другой текстовый редактор для записи программы.
“Hello World” на C
Первый опыт программирования на языке С вам предоставит небольшая стандартная программа “Hello World”. Можете попробовать ее, используя следующее демо:
#include int main() /* моя первая программа на языке C */
printf("Hello, World! \n");
return 0;
>
Применение C
Изначально язык C использовался для разработки систем, в частности, программ, составляющих операционную систему. C был принят в качестве языка разработки систем, потому что он производит код, который выполняется почти так же быстро, как код, написанный на ассемблере.
Основные сферы применения языка C:
- Операционные системы.
- Компиляторы языков.
- Ассемблеры.
- Текстовые редакторы.
- Спулеры печати.
- Сетевые драйверы.
- Современные программы.
- Базы данных.
- Языковые интерпретаторы.
- Утилиты.
Целевая аудитория
Это руководство предназначено для программистов, которые хотят изучить язык C, что называется, с нуля. Овладение основными понятиями C позволит перейти на более высокий уровень знаний.
Предварительные условия
Приступая к изучению данного материала, необходимо иметь общее представление о терминологии компьютерного программирования. Базовое понимание любого из языков программирования поможет понять концепции программирования на C и быстро продвигаться по пути обучения.
Настройка среды
Чтобы настроить среду для языка C, вам понадобятся два программных инструмента: (а) текстовый редактор и (б) компилятор C.
Текстовый редактор
Этот инструмент будет использоваться для набора текста программы. Примерами текстовых редакторов являются:
- Windows Notepad;
- EDIT;
- Brief;
- Epsilon;
- EMACS;
- vim;
- vi.
Название и версия текстовых редакторов могут отличаться в разных операционных системах. Например, если Notepad используется только в Windows, то vim или vi подходят как для Windows, так и для UNIX.
Файлы, которые создаются с помощью редактора, называются исходными файлами и содержат исходный код программ. Исходные файлы программ на C обычно называются с расширением “.c”.
Компилятор C
Исходный код, записанный в исходном файле, является человекочитаемым исходным текстом программы. Его необходимо скомпилировать в машинный язык, чтобы процессор мог выполнить программу в соответствии с заданными инструкциями.
Компилятор транслирует исходный код в конечные исполняемые программы. Наиболее часто используемым и бесплатно предоставляемым является компилятор GNU C/C++. В качестве альтернативы можете использовать компиляторы от HP или Solaris, если они соответствуют вашей операционной системе.
В следующем разделе объясняется, как установить компилятор GNU C/C++ на различные ОС. Будем продолжать упоминать C/C++ вместе, потому что компилятор GNU GCC подходит как для C, так и для C++.
Установка на UNIX
Если вы используете UNIX-подобную систему, проверьте, установлен ли GCC, введя следующую команду в командной строке:
$ gcc -v
Если на вашем компьютере установлен компилятор GNU, то он должен вывести сообщение следующего вида:
Using built-in specs.
Target: i386-redhat-linux
Configured with: ../configure --prefix=/usr .
Thread model: posix
gcc version 4.1.2 20080704 (Red Hat 4.1.2-46)
Если GCC не установлен, вам придется установить его самостоятельно, используя подробные инструкции, доступные на сайте https://gcc.gnu.org/install/.
Данное руководство написано на основе Linux. Поэтому все приведенные в нем примеры были скомпилированы на Cent OS с учетом особенностей системы.
Установка на Mac OS
Если вы используете Mac OS X, самый простой способ получить GCC — загрузить среду разработки Xcode с сайта Apple и следовать простым инструкциям по установке. Xcode доступен по ссылке developer.apple.com/technologies/tools/.
Установка на Windows
Чтобы установить GCC на Windows, необходимо сначала установить MinGW. Для этого зайдите на домашнюю страницу MinGW www.mingw.org и перейдите по ссылке на страницу загрузки MinGW. Скачайте последнюю версию установщика MinGW, которая должна называться MinGW-.exe.
Во время установки MinGW, как минимум, необходимо установить gcc-core, gcc-g++, binutils и среду выполнения MinGW (можете установить и больше).
Добавьте подкаталог bin установки MinGW в переменную среды PATH, чтобы можно было определить эти инструменты в командной строке по их простым именам.
После завершения установки можете запускать gcc, g++, ar, ranlib, dlltool и остальные инструменты GNU из командной строки Windows.
- Обучение программированию лучше начать с языка С. И вот почему
- Вас неправильно учили объектно-ориентированному программированию
- Принципы SOLID — ключи к чистому коду
Среды разработки для С
Одной из распространенных сред разработки для программирования на Windows является Visual Studio . В данном случае мы будем использовать бесплатную и полнофункциональную среду Visual Studio 2019 Community, которую можно найти по адресу https://visualstudio.microsoft.com/ru/vs/community/.
После загрузки и запуска установщика Visual Studio в нем необходимо отметить пункт Разработка классических приложений на C++ :
Выбрав все необходимые пункты, нажмем ОК для запуска установки. После установки Visual Studio создадим первый проект. Для этого откроем Visual Studio. На стартовом экране выберем тип Empty Project для языка C++:
На следующем экране в поле для имени проекта дадим проекту имя HelloApp и также можно указать расположение проекта. И затем нажмем на Create для создания проекта.
После этого Visual Studio создаст пустой проект. Добавим в него текстовый файл для набора исходного кода. Для этого в окне Solution Explorer (Обозреватель решений) нажмем правой кнопкой мыши на узел Source Files и в контекстом меню выберем Add -> New Item. :
Затем нам откроется окно для добавления нового элемента:
Здесь нам надо выбрать пункт C++ File(.cpp) , а внизу окна укажем для файла имя hello.c . Как правило, исходные файлы на Си имеют расширение .с . Оно указывает, что этот файл содержит исходный код на языке С, и он будет обрабатываться соответствующим компилятором.
Настройка проекта
После добавления файла изменим опции проекта. Для этого перейдем к пункту меню Project -> Properties
В окне свойств проекта в левой части перейдем к секции С/С++ и далее к пункту Advanced :
В правой части окна для поля Compile As установим значение Compile as C Code (/TC) . Тем самым мы говорим, чтобы по умолчанию исходный код компилировался именно как код С, а не С++.
После установки этого значения нажмем на кнопку «Применить», чтобы новые настройки конфигурации вступили в силу.
Для работы с языком Си может быть полезна еще одна настройка — установка стандарта языка. Перейдем к пункту С/С++ -> Language . Здесь в поле C Language Standard мы можем установить один из доступных стандартов для языка Си, который будет применяться для компиляции:
Правда, в данном случае он не играет значения, поэтому оставим для этого параметра настройку по умолчанию.
Определение кода программы
После добавления файла >hello.c проект будет иметь следующую структуру:
Вкратце пробежимся по этой структуре. Окно Solution Explorer содержит в решение. В данном случае оно называется HelloApp. Решение может содержать несколько проектов. По умолчанию у нас один проект, который имеет то же имя — HelloApp. В проекте есть ряд узлов:
- External Dependencies : отображает файлы, которые используются в файлах исходного кода, но не являются частью проекта
- Header Files : предназначена для хранения заголовочных файлов с расширением .h
- Resource Files : предназначена для хранения файлов ресурсов, например, изображений
- Source Files : хранит файлы с исходным кодом
Теперь определим в файле hello.c простейший код, который будет выводить строку на консоль:
#include // подключаем заголовочный файл stdio.h int main(void) // определяем функцию main < // начало функции printf("Hello METANIT.COM!\n"); // выводим строку на консоль return 0; // выходим из функции >// конец функции
Здесь использован весь тот код, который был рассмотрен в предыдущих темах про компиляцию с помощью GCC.
Теперь запустим программу. Для этого в Visual Studio нажмем на сочетание клавиш Ctrl+F5 или выберем пункт меню Debug -> Start Without Debugging :
И в итоге Visual Studio передаст исходный код компилятору, который скомпилирует из кода исполняемый файл exe, который потом будет запущен на выполнение. И мы увидим на запущенной консоли наше сообщение:
Затем в проекте в папке x64/Debug мы можем увидеть скомпилированный файл exe, который мы можем запускать независимо от Visual Studio:
В данном случае файл HelloApp.exe как раз и представляет скомпилированный исполняемый файл.
Как начать писать программный код Си в ОС Linux (Руководство для совсем начинающих)
Добрый день. Этот материал рассчитан на людей, будущих программистов, которые только начинают разбираться в программировании под ОС Linux. Я попробую здесь показать прямое руководство к действию на примере тех простых инструментов, которые использовал некогда сам при изучении Си в процессе знакомства с Linux. На самом деле, с теми или иными поправками, это руководство можно использовать в большинстве дистрибутивов. Руководство однозначно подходит для всех deb-based дистрибутивов.
С установкой ОС, как я полагаю, проблем у Вас уже не возникло. Этому процессу посвящены просто тысячи статей на профильных сайтах.
Итак: у Вас сейчас установлен дистрибутив ОС, как говорится, «из коробки». Перед глазами пособие для разработчика/учебник/просто_хорошая_книга по «Языку программирования Си». И никакой вменяемой, полноценной подробной информации о том, как же собственно откомпилировать и выполнить, написанный в книге, исходный код. Быстрый осмотр тематических ресурсов уже показал Вам, что, необходимо установить компилятор Си, запустить его с нужными параметрами и потом запустить компилированный бинарный код. Примерно с этого момента мы и начнём.
Установка компилятора
Я имею ввиду, что Вы скорее всего (бывший) пользователь ОС Windows и действия в чёрном/синем окошке при помощи клавиатуры оканчивались где-то на команде ping, кажутся неким таинством. Однако отмечу, что всё банально просто и текстовой интерфейс предоставляет намного более гибкие возможности (скорее всего Вы неоднократно Вы слышали это ранее). Приступим:
Я подразумеваю, что с понятием компиляции и о том что такое компилятор Вас уже познакомила правильная книга.
На этом этапе всё будет очень быстро и просто. Открываем терминал и пишем:
sudo apt install gcc
(На всякий случай: вставка в gnome-terminal ctrl+shift+v)
Сразу поясню, что текст слева от курсора — это приглашение командного интерпретатора и оно выглядит следующим образом:
Далее я буду указывать только команды интерпретатору без приглашения.
Данная строка «говорит» интерпретатору: «от имени суперпользователя запустить менеджер пакетов для установки пакета gcc».
Система попросит Вас ввести пароль суперпользователя и приступит к установке компилятора.
Чтение списков пакетов… Готово Построение дерева зависимостей Чтение информации о состоянии… Готово Предлагаемые пакеты: gcc-multilib gcc-doc Следующие НОВЫЕ пакеты будут установлены: gcc Обновлено 0 пакетов, установлено 1 новых пакетов, для удаления отмечено 0 пакетов, и 44 пакетов не обновлено. Необходимо скачать 5 208 B архивов. После данной операции объём занятого дискового пространства возрастёт на 51,2 kB. Пол:1 http://ru.archive.ubuntu.com/ubuntu focal/main amd64 gcc amd64 4:9.3.0-1ubuntu2 [5 208 B] Получено 5 208 B за 0с (34,6 kB/s) Выбор ранее не выбранного пакета gcc. (Чтение базы данных … на данный момент установлено 371769 файлов и каталогов.) Подготовка к распаковке …/gcc_4%3a9.3.0-1ubuntu2_amd64.deb … Распаковывается gcc (4:9.3.0-1ubuntu2) … Настраивается пакет gcc (4:9.3.0-1ubuntu2) … Обрабатываются триггеры для man-db (2.9.1-1) …
Если же он уже установлен, то менеджер пакетов apt просто укажет на это примерно следующим образом:
Чтение списков пакетов… Готово Построение дерева зависимостей Чтение информации о состоянии… Готово Уже установлен пакет gcc самой новой версии (4:9.3.0-1ubuntu2).
Установка редактора
Обычно с дистрибутивом Ubuntu поставляется весьма интересный текстовой редактор gedit . Однако в других дистрибутивах возможно придётся установить этот редактор:
sudo apt install gedit
Создание файла с исходным кодом
Теперь пришло то самое время нашего классического «hello world»! Давайте сделаем это в стиле linux. Просто наберите в консоли:
gedit ~/hello_world.c
Более подробно Вы обязательно прочитайте в профильных ресурсах и в документации, я только отмечу, что символ «тильда» возвращает полный путь к домашнему каталогу пользователя ОС. Соответственно будет создан файл в вашем домашнем каталоге с указанным именем.
И далее наш программный код на языке Си в редакторе:
#include "stdio.h" int main() < printf ("\nHello world)\n"); for (int c=0; c<10;c++) < for (int i =0;ireturn 0; >
(Стоит отметить, что в редакторе gedit есть подсветка синтаксиса для различных языков программирования. Переключить режимы подсветки можно в нижней части окна редактора.)
Не забываем сохранить изменения нажатием ctrl+s. Обратите внимание, что вопросов об имени файла не последовало, так как имя было уже указано параметром при запуске редактора из командной строки терминала.
Компиляция и запуск
Закрываем окно редактора нажатием Alt+F4 и запустим же то сокровенное ради чего все тут и собрались:
gcc ./hello_world.c
И в ответ только новое приглашение. В отличие от стиля в ОС Windows, когда консоль, жутко подробно по-умолчанию, комментирует выполняемые действия — большинство программ в ОС семейства *nix сообщают только об исключительных ситуациях, ошибках и тому подобных вещах. То есть если «в ответ тишина» — то всё прошло хорошо.
Теперь в домашнем каталоге у нас появился файл a.out — он и есть файл с исполнимым кодом.
Для запуска этого файла на исполнение — назначим ему атрибут: «исполнимый»:
chmod +x a.out
и теперь запустим получившееся приложение:
./a.out
(Для запуска исполнимого файла интерпретатору требуется указать полный путь к файлу. Как в случае с «тильдой» символ «точка» возвращает полный путь к текущему каталогу. В данном конкретном случае правомерно так же запустить через ~/a.out Это не имеет значения здесь, так как файл создан в домашнем каталоге пользователя.)
И мы получаем вывод в терминале:
Hello world) # ## ### #### ##### ###### ####### ######## #########
Для выполнения всех повторных действий: изменение кода и снова компиляция, — Вы можете не вводить все эти команды каждый раз заново, а использовать стрелки вверх и вниз, для быстрого выбора команд из истории. И, кстати, вывод списка истории всех введённых команд можно выполнить командой (на самом деле программой) history .
Минутка автоматизации
Теперь приступим к очень интересному моменту связанному с творчеством в духе *nix. Каждый раз вводить много скучных команд неинтересно, возможно, даже вредно. Мы расширим функционал редактора gedit и доработаем его «напильником» до состояния примитивной среды разработки: запустим gedit и откроем меню параметров,
где на вкладке «Расширения» добавляем «Внешние инструменты»
И затем, из того же главного меню gedit выбираем «Управление внешними инструментами».
Как Вы уже поняли — здесь можно выполнить доработку функциональности текстового редактора. Создадим новый инструмент: «Компиляция и запуск», В качестве вывода используем нижнюю область редактора. Инструмент назначим для файлов C и C++. Назначим клавишу F5 (дело вкуса) на применение инструмента и собственно сам код инструмента в виде скрипта bash:
#!/bin/bash gcc -o a.out $GEDIT_CURRENT_DOCUMENT_NAME chmod +x ./a.out ./a.out rm ./a.out
Разберёмся в том, что тут происходит:
#!/bin/bash — указание командного интерпретатора для выполнения скрипта.
gcc -o a.out $GEDIT_CURRENT_DOCUMENT_NAME — здесь мы запускаем компилятор, где в параметре -o указываем имя выходного файла. Пускай он будет таким же как и по-умолчанию.
$GEDIT_CURRENT_DOCUMENT_NAME — через эту переменную gedit передаёт имя файла.
Дальше Вы уже знаете — назначение атрибута «исполнения», запуск файла и потом:
rm ./a.out — удаление созданного исполнимого файла.
Попробуем инструмент в деле:
Теперь можно продолжать изучать пособие для разработчика/учебник/просто_хорошую_книгу по «Языку программирования Си» на практике.
Заключение
На самом деле в ОС Linux полно возможностей по доработке и использованию различного ПО. Само ПО является максимально гибким. Необязательно использовать предложенные мною средства, скорее методы, разработки.
В дальнейшем Вам обязательно понадобятся более серьёзные средства. А на первое время Вы можете дополнительно посмотреть другие редакторы, вплоть до больших и серьёзных сред разработки. Однако обязательно обратите внимание на редактор vim.