Недавно осознав, что осталось 5 недель до начала конца, решил оперативно решить проблемы с лабами.
Итак, смотря на боль сопартийцев при работе с Linux, за исключением некоторых особей, я понял, что в принципе от этой системы людям нужен только терминал.
Я честно не понимаю как люди пишут на СИ в gedit или sublime, компилируя в терминале. При этом знать не знают как использовать отладчик. Все решается, господа.
Для многих, кто это читает Windows основная система. Так давайте совместим приятное с полезным.
Для дальнейшего потребуется:
- Windows 10
- >4 гб RAM
- 15-25 минут свободного времени
- ~15-20гб свободного места (на диске C:\ )
Что мы будем делать:
- Фактически поставим Linux(Ubuntu 16.x) на Windows
- Поставим удобные инструменты для работы с кодом
- Поставим плагины для ускорения сдачи лаб (руки не идут в комплекте, увы)
Начнем
Первое что нужно сделать, это поставить Linux.
Это не всякие там эмуляторы и прочие приблуды, которыми тешатся в основном только школьники. Нам нужен терминал и gcc. Мутим.
- Включим подсистему Linux в Windows
Для этого идем : Пуск -> Control Panel (Панель управления) -> Uninstall a program (Удаление программ) -> Windows Features (Включение/Отключение компонентов Windows) -> Включаем Windows Subsystems for Lunix и PowerShell
Скрины ниже:
После этого Windows скачает(+включит) необходимые компоненты и перезагрузится.
1.1. Теперь поставим Linux
Открываем PowerShell (или терминал): Win+R ->powershell (или cmd)
Откроется вот такое добро. Пишем туда bash и тыкаем Enter
Он предложит скачать подсистему, пишем yes и нажимаем Enter.
Все, на данном этапе мы поставили Linux себе в Windows, без смс и регистрации.
Ставится она буквально голая, поэтому открываем снова PowerShell и пишем bash.
Далее ставим необходимый нам gcc:
sudo apt-get update
sudo apt-get install gcc
Важно:
Копирование из этой консоли происходит после выделения области с текстом и нажатия правой кнопки мыши (или выделению и Ctrl+C)
Вставка в консоль также происходит по нажатию правой кнопки мыши по пустому месту (По Ctrl+V вставки не происходит!)
Почему я не рекомендую использовать cmd: слишком много проблем с нормальным фукнционированием обычной Командной строки с сим детищем. То копировать отказывается, то пути не правильно вставляет — мрак, да и только. Будущее за PowerShell (дальше-больше)
Итак, ты сейчас добился фактически перемирия между OpenSource и Проприетарщиной. Можешь гордиться этим.
2. У нас есть карманная линуха, но мы все еще в Windows, пора поставить нормальный инструментарий для работы с кодом, а не вот это всё.
Ставим, конечно, Notepad++ и Visual Studio 2017 Community
Начнем с первого, ибо попроще. Старый добрый Notepad++, чтобы если что подправить ваш говнокод на скорую руку. +Выделение синтаксиса весьма приятная штука.
С Вижлой будет по-сложнее, но вы справитесь, возможно.
У вас откроется окно инсталяции, обращаю внимание, что начиная с 2017-й вижлы, можно выбрать место установки. (На всякий случай, если вам жалко места на C:\), также с 2017-й студии можно выбрать отдельно компоненты, которые нужны именно для ваших страданий:
Выбираем C++ desktop и .Net desktop. Дальше листаем в самый низ
И выбираем Linux dev C++
Дальше идем на вторую вкладочку и выбираем еще 2 пункта: C++/CLI support, Standard Library Modules
Жмем Install, и ждем завершения установки.
3. Установка плагинов для успешной и быстрой работы с говнокодом
Первым делом ставим Productivity Power 2017, идем:
Перезагружаем вижлу, ждем установки.
Далее (по возможности) поставьте отдельно ReSharper (он немного платный, но вы, возможно, справитесь. Не забудьте поставить поставить галочку на C++ при его установке)
Итак, в чем основной профит сего выше проделанного, и как нормально создать проект в вижле:
- Вы получаете отладчик
- Автоматический кодстайл
Итак, все проекты лежат в Моих Документах/Visual Studio 17/Projects
Создадим новый:
Напишем маленькое тестовое приложение и запустим по F5
Все работает, но это пока на винде, деду такое не подойдет.
Идем к нашему файлу.
В PowerShell пишем cd «ваш путь» (кавычки обязательно), и потом bash
потом,
gcc <имя_вашего_файла_с_расширением_.с>
./a.out
Как вы могли заметить мне лень переделывать скрины некоторые различия между кодом, который работает в VS и Linux есть. В данном случае «system(«pause»);» в примере служило тому, чтобы консоль на винде не закрывалась. На Linux это не нужно, поэтому при сдаче не забудьте удалить лишнее.
Да, имена которые получаются в консоли какие-то дикие, поэтому при формировании отчета, делайте все в другой папке, предварительно скопировав туда свой файл.c из папки проекта VS.
Опять же, если вам не нравится VS, и прогать в своих блокнотах вам удобнее, то переходить с системы на систему вам должно было осначертеть. Та же виртуалка обычно здорово грузит систему и совершенно не удобна, как по мне. Bash в консоли-топчик.
Позднее покажу как запускать линушные приложения с графикой на винде.
Дерзайте.