Comments 51
Следующий шаг — собрать небольшой проект из пары тысяч файлов, подтянув с местного репозитория энное количество библиотек, протянуть тесты, подложить нужные конфиги, подложить плетформ-депендант нейтив библиотеки, задеплоить в продакшн, заодно дёрнув какую джиру.
С Maven работают в основном Java-разработчики, хотя есть плагины для интеграции с C/C++, Ruby, Scala, PHP и другими языками.
Можно, но никакого смысла в этом нет. Это, как в той картинке про буханку хлеба, превращающуюся в автобус.
Вот вы установили. Вам же нужно его как-то протестировать? Что вы делаете? Запускаете из командной строки с аргументами. Как вы иначе проверите правильность его установки и работы? Или вы верите в то, что он изначально установился правильно? Вот вам и ответ. Ну использовать хотя-бы для тестирования правильности установки. И да можно собирать мавеном прямо из текстового редактора и скриптами.
А зачем столько лишних телодвижений, когда есть бесплатная Visual Studio Community и VSCode? Ну и конечно же Rider (Idea), правда уже платные.
Впрочем для этого есть онлайн компиляторы, но вот со сторонними либами часто они работать не умеют.
Для Си в студии надо создавать проект, настраивать…
Для Асм в студии нет нормальной подсветки + нет другого компилятора, кроме масм.
В нотепаде быстро, удобно, написал, ф6 и готово.
Надеюсь данная публикация будет полезной в освоении, расширении новых знаний и навыков.
Данная публикация будет наглядным примером, как можно расписать на пяти страницах решение вопроса, которому достаточно посвятить пару абзацев текста.
java C:\path\to\HelloWorld.java
Компиляция программ с Божией помощью из Notepad++
github.com/simonsteele/pn/releases
Самый недавний это 3 Dec 2016.
Simon Steele работал над этим проектом 15 лет.
NppExec — неудобная хреновина. Не поддерживает юникодные символы в выводе, и с управляющими последовательностями беда (вывод, который в ConEmu отображается раскрашенным — в NppExec остаётся монохромным).
А по остальному — я не понял, причём здесь notepad++. Если я компилирую программу консольной утилитой, то какая разница, в каком редакторе я написал исходники?
В какой кодировке у вас исходники? Поставьте UTF-8. Вы путаете установки для системы для юникода, установки Notepad++ для исходников, установки консоли для юникода и установки преобразования символов из одной кодировки в другую в самом NppExec. Вы можете поставить без преобразования и он оставит у вас то что есть.
Что касается ConEmu, то в Windows 10 вы можете использовать полноценную оболочку Bash вместо эмулятора консоли ConEmu.
Раскрасить символы вывода можете и для cmd.
Вы можете писать исходники в любом текстовом редакторе. И я вас не призываю использовать какой-то определенный. Но эта статья относится к Notepad++. Будет время, напишу про другой.
Но эта статья относится к Notepad++.
Вот именно это и непонятно. Каким образом эта статья относится к Notepad++? Разве что в смысле упоминания оного.
Вы путаете установки для системы для юникода, установки Notepad++ для исходников, установки консоли для юникода и установки преобразования символов из одной кодировки в другую в самом NppExec. Вы можете поставить без преобразования и он оставит у вас то что есть.
Нет не путаю. Исходники — в UTF-8, сообщение в консоль я пытаюсь выводить в ней же. Русские буквы — не отображаются. Собственно, поэтому я и снёс некогда NppExec.
Ну например на c# это выглядит так:static void Main(){
Console.OutputEncoding = System.Text.Encoding.UTF8;
Вот мой вывод в консоле самого Notepad++
<<< Process finished (PID=7912). (Exit code 0)
IF: 0 !=0 goto exit
HelloWorld
Process started (PID=6364) >>>
Привет
___________
При этом я везде установил кодировку UTF-8.
Далее в коде на с#, кроме вывода на консоль, я создал окно: MessageBox.Show(«Мир»);
Никаких кракозябр. Всё работает. Я посмотрю еще на других языках программирования, как решается эта проблема. Но вы же можете программно писать в коде и считывать самостоятельно системные кодировки, кодировки консоли и тд. Немного позже я добавлю решение этих вопросов в текст статьи. И напишу более подробно.
Если хочется на уровне отдельных файлов с исходными текстами работать — посмотрите в сторону make, в частности — gnu make. Если на несколько уровней выше — то в сторону maven. На apache ant тоже можно глянуть, но я бы не советовал… А на ущербном cmd писать 1% от функциональности вышеуказанных кроссплатформенных инструментов — выделки, по-моему, не стоит…
Мне показалось лишь странным, описывать достаточно простые вещи в немаленькой статье. Хотя я не рассматривал данную статью как tutorial для NppExec.
Ну а попытка донести информацию, что часто требуется нечто большее, чем компиляция пары-другой файлов, похоже, успехом не увенчалась.
Здесь вас скорее всего смутило, то что я привожу в основном примеры на java
Да нет, не смутило. Поэтому gnu make и упомянул.
Здесь я показал наиболее простой путь к пониманию, как мне кажется.
Простите, но к понимаю чего? Что если ты написал код в блокноте, то его можно скомпилировать вручную вызвав компилятор с параметрами в интерпритаторе командной строки?
Будете подключаться из Linux? Так я выпиливаю ненужные мне части системы. Подсистема posix не нужна для нормальной работы, её вполне можно удалить. Будете использовать кучу стороннего софта и те утилиты с GIU которые есть в системе? Или руками лезть каждый раз в regedit?
А на ущербном cmd писать 1% от функциональности вышеуказанных кроссплатформенных инструментов — выделки, по-моему, не стоит…Ваши вопросы как-то плохо к нему подходят. Если хотите поговорить о cmd, power shell,… etc. — давайте поговорим.
Насчет cmd — то без него как вы настроите, диагностируете систему?… Как без cmd диагностировать систему, если большая часть утилит не имеет GUI?Скрипты настройки и диагностики могут быть на чём угодно, в том числе на cmd. Просто, на cmd лаконично без «подвыподвертов» у меня хоть сколько-нибудь серьёзной логики написать не получалось. Да и возможность обработки сигналов отсутствует… На том же bash это было существенно красивее. Я использовал и gnuwin, и cygwin, сейчас добавился wsl. На питоне подобную логику приходилось писать — тоже куда удобнее, чем на cmd. Но вас я не отговариваю.
Будете использовать power shell?power shell я не люблю, поскольку нахожу его весьма тяжеловесным «на вкус и цвет»… Хотя он очень мощный. Правда, для кода, показанного в статье, power shell — по-моему, перебор.
Будете подключаться из Linux?Мне не очень понятно, что вы имеете в виду. Мы же говорим о windows.
Будете использовать кучу стороннего софта и те утилиты с GIU которые есть в системе?«кучу стороннего софта» — нет. Только набор удобных утилит, такой, например, как gnuwin. А «утилиты с GIU» для подобных задач сомнительны, да и часто не имеют api.
Или руками лезть каждый раз в regedit?А тут вообще не понял. REG (\Windows\System32\reg.exe), которую вы используете, — это утилита, которую можно запускать откуда угодно. К cmd она прямого отношения не имеет. Кстати, для изменения мастер-копии переменных окружения, больше подходит утилита SETX. Хотя в рамках «компиляции программ с помощью Notepad++», потребность переписывать что-то в registry заставляет серьёзно задуматься об этой «компиляции». Если не хочется «вводить каждый раз полный путь к программе», в моей ситуации удобнее прописать эти данные в локальном файле конфигурации окружения проекта, поскольку, как правило, компиляторов стоит несколько версий.
P.S. Такими успехами можно извратиться и в MS Word программы «компилировать».
А вообще, для того чтоб не заниматься вот такой «эротикой» с командной строкой как раз и существуют CMake и другие системы сборки…
Emacs можно скачать с gnu.org
www.gnu.org/software/emacs
Но в них нужно вникать и осваивать другие подходы работы с текстом.
У emacs довольно давно есть возможность работать с искусственным интеллектом.
Только поисковики мне по этому вопросу какую-то билеберду выдают. В основном какие-то рекламные кричащие заголовки.
У метода с стандартной CMD и .bat-скриптами под неё тоже есть масса недостатков. Лично сталкивался с случаем когда проект правильно работал на Win-XP, но не хотел на Win-7 т.к. скрипты были заточены чисто под XP и ошибались с путями. Как видите, в данном случае уход от системы сборки убил переносимость не между платформами, а переносимость между разными версиями одной и той-же платформы.
Именно по этой причине я настоятельно рекомендую осваивать системы сборки. IDE можно выбирать на свой вкус и цвет. Но если нужно чтоб проект поддерживали несколько разных человек — стоит всё-же позаботиться о удобстве остальных тоже…
Какой я посыл хотел открыть в этом материале: То что начинающему вовсе не обязательно начинать свое обучение с готовых IDE, c готовых фремворков и тд. Да вам может поначалу показаться, что программирование состоит из складывания кубиков GUI и связывания обработчиков. Здесь я писал для лучшего понимания некоторых общих концепций. Во всяком случае пытался. Знание готового фрейворка повысит вашу эффективность. Но не сделает из вас разработчика. Также как и знание одного IDE. Такое знание сделает из вас «Знателя определенного фремворка» или «Знателя IDE одной версии».
Акак это все заставить запускаться с правами админа?
Выполнить программу можно нажав поиск cmd и нажав на приложение «командная строка» либо из меню «выполнить», набрав cmd.
Спасибо, как я жил без этого! /Сарказм
Компиляция программ с помощью Notepad++