Как можно работать дома
Если на Вашем домашнем компьютере или ноутбуке установлен Linux, то Вы, вероятно, не
должны читать эту страницу (достаточно посмотреть рекомендуемые ключи компилятора).
Если же у Вас установлен Windows, то существует несколько способов решения проблемы,
которые описаны ниже.
Пользователям MacOS подойдет вариант с VirtualBox (можно как-то установить версию компилятрора
gcc для MacOS, но инструкцию
ищите самостоятельно в Интернет).
- Удалить Windows и установить на своем домашнем компьютере Linux. Например, Ubuntu. Пора привыкать к хорошему. (На самом деле это кардинальное решение, и лучше продолжить читать дальше).
- Установить VirtualBox (загружать нужно
версию "VirtualBox x.x.x for Windows hosts") и после этого создать виртуальную машину с Linux.
Этот способ позволяет одновременно пользоваться как Windows, так и Linux.
VirtualBox - это обычная программа для Windows, которая запускает Linux в отдельном окне, причем у Вас может быть
несколько различных версий Linux или Windows одновременно.
Для установки Linux (после того, как вы установили на своем компьютере VirtualBox) есть две возможности:
- Скачать какой-нибудь дистрибутив (Ubuntu, Fedora, CentOS, Debian) в виде iso-файла и установить его.
Инструкцию по установке системы в VirtualBox можно посмотреть
здесь.
Для нормальной работы нужен достаточно современный компьютер (4Gb оперативной памяти, если Вы хотите
пользоваться графическим интерфейсом Linux).
-
Если Вы не хотите самостоятельно устанавливать и настраивать Linux, то
можно использовать специально подготовленную виртуальную машину
(файл занимает 1.2Gb; желающие могут получить его на занятии или скачать файл students-21.ova в коневой директории этого сайта).
Для начала работы достаточно запустить VirtualBox, выбрать пункт меню File/Import Applience..., выбрать скаченный файл
и указать на следующем окне параметры виртуальной машины. (Имеет смысл изменять только параметр RAM, который означает
доступный для Linux объём оперативной памяти. Для нормальной работы будет достаточно 128MB, по умолчанию установлено
значение 512Mb. Рекомендуют указывать не более 50% от размера оперативной памяти компьютера.
Это значение можно будет изменить и после установки виртуальной машины).
Весь процесс установки займет несколько минут. Это самый простой способ работы дома.
В результате Вы получите настроенную систему, которая может работать на
компьютерах с небольшим объемом оперативной памяти, так как у нее отключены все "лишние" функции.
После создания виртуальной машины с Linux желательно настроить общие папки. VirtualBox позволяет
указать папку Windows, которая будет доступна для чтения и записи в Linux. Настройка производится
во вкладке Shared Folders окна, которое появляется после нажатия кнопки Settings. Нужно нажать на иконку
со знаком плюс, выбрать папку в Windows, задать её имя латинскими буквами без пробелов и поставить галочку Auto-mount.
После загрузки Linux общая папка будет называться /media/sf_NAME, где NAME - то имя, которое Вы
указали в настройках.
- Создать загрузочную флэшку. Большинство компьютеров имеет возможность загрузить операционную систему с флэш-диска.
Для этого скачаваем дистрибутив Linux в виде файла с расширение .iso
(например, этот),
скачиваем с этого сайта программу для записи флэшки (YUMI), вставляем чистую
флэшку и запускаем YUMI. После записи iso-файла на флешку перегружаем компьютер (не вынимая флэшки)
и выбираем вариант "загрузка с флэшки".
(Этот шаг свой для каждого компьютера. Обычно сразу после включения нужно нажать F11, F12 или аналогичную кнопку.
На экране это написано. Можно попробовать вообще ничего не нажимать.) При запуске Linux выбираем пункт "запустить с
флэшки без установки на компьютер".
- Установить MinGW – версия компилятора gcc для Windows, которая почти совпадают с аналогичными программами под Linux. Инструкция по установке? Посмотрите здесь.
-
Установить компилятор gcc для Windows. Этот вариант удобно использовать вместе с Microsoft Visual Studio Code.
- Установить Code::Blocks (прямая ссылка для скачивания),
но лучше использовать один из
предыдущих методов. Пользователи Code::Blocks не всегда могут откомпилировать свою программу на зачете.
-
Если у вас нет возможности установить линукс на своем компьютере, но есть постоянное подключение к Интернет, вы можете работать на удаленном (моем) компьютере. Для этого существует по крайней мере две возможности. Логины и пароли уточняйте по электронной почте.
- Скачать программу
Putty и подключиться к моему серверу.
-
Установить Microsoft Visual Studio Code,
SSH-клиент,
добавить расширение (пункт меню View->Extensions) Remote
- SSH (производитель Microsoft)
и подключиться
по ssh к серверу. В результате вы получите современный
текстовый редактор на своём компьютере с возможностью
редактирования файлов на Linux-сервере. Для компиляции программы нужно
открыть терминал (пункт меню Terminal->New terminal). Это окно аналогично программе putty.
Если Вы установили или получили удаленный доступ к Linux одним из перечисленных способов, то для компиляции программ можно использовать команды,
приведенные в Памятке. Однако настройки компилятора, которые используются
в стандартных дистрибутивах Linux, отличаются от настроек в компьютерном классе. Это означает, что программа,
которая работает на Вашем компьютере, может не откомпилироваться в классе.
Для компиляции программ "в режиме класса" можно использовать следующую команду (вместо "-o first first.c"
нужно подставить ваши имена файлов):
gcc -Wall -Wextra -Werror -Wold-style-declaration -Wold-style-definition \
-Wfloat-equal -pedantic -std=c99 -o first first.c
Более продвинутые опции
Язык С:
gcc -Wall -Werror -Wformat-security -Wignored-qualifiers -Winit-self -Wswitch-defaulti \
-Wfloat-equal -Wshadow -Wpointer-arith -Wtype-limits -Wempty-body -Wlogical-op \
-Wstrict-prototypes -Wold-style-declaration -Wold-style-definition \
-Wmissing-parameter-type -Wmissing-field-initializers -Wnested-externs \
-Wno-pointer-sign -std=gnu99
Язык С++:
c++ -Wall -Werror -Wformat-security -Wignored-qualifiers -Winit-self -Wswitch-default \
-Wfloat-equal -Wshadow -Wpointer-arith -Wtype-limits -Wempty-body -Wlogical-op \
-Wmissing-field-initializers -Wctor-dtor-privacy -Wnon-virtual-dtor \
-Wstrict-null-sentinel -Wold-style-cast -Woverloaded-virtual \
-Wsign-promo -Weffc++ -std=gnu++0x