Как запустить консольное приложение
Многие из нас писали программы на Паскале задолго до того, как вошли в моду Графический интерфейс пользователя (GUI) и Интегрированные среды разработки (IDE). Многие другие являются новичками в программировании на Pascal, и им необходимо уметь опробовать основные инструменты языка. Третьим нужны консольные приложения или приложения текстового режима для выполнения сложных задач управления системой.
Программирование в консольном режиме без Lazarus
Хотя многие предпочитают использовать Lazarus IDE для написания программ в режиме консоли, вы также можете написать их с помощью любого текстового редактора и скомпилировать их самостоятельно, вызвав компилятор FPC, например так для программы в example.pas:
Также доступен текстовый режим IDE fp (немного похожий на старый Turbo Pascal).В следующих разделах мы сосредоточимся на программировании с помощью Lazarus.
Программирование в консольном режиме с помощью Lazarus
Lazarus предоставляет идеальную среду для изучения Паскаля и разработки программ в текстовом режиме. Можно использовать все функции интегрированной среды разработки, включая редактор исходного кода с ее подсветкой синтаксиса, доступом к библиотекам, сложными инструментамиы поиска и завершения кода, а также проверкой синтаксиса. Если вам не нужна Form с ее визуальными компонентами, можно и без нее, но редактор исходного кода Lazarus по-прежнему остается отличной средой для разработки программ. Вы можете компилировать и запускать свою программу во время разработки, не выходя из редактора.
Чтобы запустить программу в режиме консоли, перейдите в главное меню и выберите Project -> New Project(Проект - новый проект), а затем выберите Program(Программа) или Console Application(Консольное приложение). Среда IDE не будет генерировать все дополнительные файлы, связанные с полным графическим приложением, и не откроет окно инспектора объектов, но откроет редактор исходного кода со структурой скелетной программы и будет ожидать ввода вашего программирования.
Примечание: В Windows приложение с графическим интерфейсом пользователя не имеет консоли и, следовательно, не может выполнить writeln или readln. Вы получите ошибку File not open(Файл не открыт). Снимите галочку в разделе Project Options / Compiler Options / Linking / Target specific options / Win32 GUI application(Параметры проекта / Параметры компилятора / Связывание / Частные параметры цели / Приложение Win32 GUI), чтобы создать консольное приложение. Начиная с Lazarus IDE 1.4 она находится в разделе Project(menu) / Project Options / Compiler Options / Config and Target / Target specific options / Win32 GUI application(Проект (меню) / Параметры проекта / Параметры компилятора / Настройка и целевая платформа / Частные параметры цели / Приложение Win32 GUI).
Примечание: Lazarus имеет некоторые функции для программ командной строки, такие как copyfile. Чтобы использовать их, добавьте требование к проекту для LazUtils (Project / Project Inspector / Required Packages --> "Add" --> New Requirement --> choose "LazUtils" --> OK), которое не будет задействовать весь LCL. Затем добавьте соответствующий модуль в раздел uses.
Тип проекта: Console Application (Консольное приложение)
Выбор этого типа проекта в Lazarus создает программу с новым классом, производным от TCustomApplication. TCustomApplication предоставляет много всяких штучек и упрощает программирование утилит командной строки. Например, проверка параметров командной строки, написание справки, проверка переменных окружения и обработка исключений. Все программы LCL используют это автоматически.
Тип проекта: Program (Программа)
В качестве демо мы напишем очень минималистичную программу на Паскале. В среде IDE выберите тип проекта Program(Программа), и пусть среда IDE вам немного поможет. Например, когда вы добавляете еще один модуль, IDE автоматически добавит имя модуля в раздел программы uses. Это поведение определяется в параметрах проекта. Таким образом, вы можете переключаться между 'Program'(Программой) и 'Custom Program'(Пользовательской программой) в любое время.
Пример для начинающих:
Pascal scripts
Кроме того, можно писать сценарии, которые динамически компилируются с помощью InstantFPC, кроссплатформенного решения для запуска (небольших) программ Pascal в виде сценариев. Шебанг
позволяет запускать скрипт как отдельную программу.
Примечание: Хотя он используется для запуска сценариев Pascal, InstantFPC использует обычный Object Pascal, а не язык сценариев PascalScript. Таким образом, "PascalScript" и Pascal script - это не одно и то же.
Запуск программы
Компиляция
Если вы еще не сохранили программу, то среда IDE поместит ее во «временный» каталог (например, /tmp в Linux, C:\temp в Windows, см. Environment Options / Files / Directory (Параметры среды / Файлы / Каталог) для собранных тестовых проектов).
Если вы уже сохранили проект, значит, программа была создана в том же каталоге, где вы сохранили файл project1.lpi.
Запуск в консоли
Вы можете запустить программу, перейдя в окно консоли (терминала), затем с помощью cd перейдя в каталог и введя имя программы. В Unix/Linux, если она находится в текущем каталоге, вам придется начать с ./ , поскольку программа, вероятно, не будет найдена в PATH.
Пример для Linux/Unix, где программа хранится в /tmp:
Однако может быть очень неудобно продолжать переходить из редактора Lazarus в окно терминала и обратно. К счастью, есть механизм, позволяющий открывать окно терминала из среды Lazarus.
Запуск в IDE
Во внутренней консоли: показывается в окне вывода терминала.
При перенаправлении вывода.
В главном меню выберите Run -> Run Parameters(Выполнить -> Параметры запуска), затем установите флажок "Use launching application"(Использовать запускаемое приложение). В первый раз, когда вы сделаете это и попробуете последовательность Compile / Run (Собрать / Запустить), вы, вероятно, получите отлуп:
'xterm: Can't execvp /usr/share/lazarus//tools/runwait.sh: Permission denied'.
Если это произошло, вам необходимо изменить права доступа к соответствующему файлу (например, с помощью chmod +x <имя файла> или с помощью утилиты Windows для изменения разрешений); возможно, вам придется сделать это как root. После этого каждый раз, когда вы будете запускать свою программу, будет появляться окно консоли, в котором будут отображаться все ваши текстовые операции ввода-вывода (readln, Writeln и т. Д.).
К сожалению, этот метод не позволяет использовать встроенный отладчик.
Запуск в IDE с перенаправлением вывода
Затем файл output.txt можно просмотреть с помощью команды 'tail -f output.txt' или просмотреть с помощью редактора, если 'tail' недоступен в вашей ОС.
В качестве альтернативы, используя Lazarus 0.9.31 или выше (только в Linux): в меню "View"(Вид) в разделе "Debug Windows"(Отладка Windows) есть запись для "console output"(консольный вывод) для просмотра стандартного вывода.
Unicode (UTF8) вывод
Если вы хотите, чтобы ваша программа в режиме консоли отображала вывод Unicode (UTF8) в Windows Vista и более поздних версиях (а также, возможно, в более ранних версиях), вы можете использовать команду SetConsoleOutputCP для задания консоли набор символов UTF8.
Примечание: вам нужно будет убедиться, что шрифт консоли может отображать буквы, которые вы хотите вывести (например, греческий, кириллица, корейский).
Примечание: вам нужно будет включить модуль Windows.
См. Поддержка Unicode LCL для получения более подробной информации о поддержке Unicode в Lazarus и FPC.
Примеры
Вы можете использовать редактор Lazarus, чтобы опробовать все примеры из стандартных учебников Паскаля, или можете написать свой собственный. Некоторые из наиболее полезных процедур - это процедуры для выполнения системных команд или для запуска других программ (написанных на Паскале, C или Perl, либо в сценариях оболочки или пакетных сценариях).
Выполнение команд оболочки
Пример: обновить FPC и Lazarus
Пример: корректировка fpc и lazarus
Могут выполняться более сложные команды. Например, после посещения хранилища SVN с новейшими версиями FPC и Lazarus (см. buildfaq) можно иметь исходные версии FPC и Lazarus новейшими, путем взятия из хранилища SVN следующей последовательностью вызовов:
Обратите внимание, что выдача команды
не работает, потому что после каждого вызова функции fpsystem() выполнение программы возвращается в каталог, в котором она была запущена; поэтому нам нужно включить несколько операторов в каждую строку в наши вызовы оболочки через fpsystem(). [Скорее так: он всегда начинается.]
Необязательно вводить каждую команду как отдельную строку Паскаля; можно создать файл сценария bash следующим образом (из buildfaq):
Назовите файл updatelaz.sh, а затем вызовите его из программы на Паскале для его непосредственного выполнения вместо использования bash следующим образом:
Примечание для пользователей Windows
Традиционно при написании консольных программ в Windows используется кодировка cp866. Если не принять специальных мер, то при написании консольной программы в IDE в консоли вместо русских букв будут выводиться кракозябры. Чтобы получился нормальный русский текст, в окне кода программы нужно нажать правую кнопку мыши и выбрать в контекстном меню "Параметры файла -> Кодировка -> CP866".
Вы создали проект консольного приложения C++ и ввели код. Теперь вы можете выполнить сборку приложения и запустить его в Visual Studio. Затем запустите его как автономное приложение из командной строки.
Предварительные требования
Установите и запустите на своем компьютере Visual Studio с рабочей нагрузкой "Разработка классических приложений на C++". Если установка еще не выполнена, следуйте инструкциям в статье Установка поддержки C++ в Visual Studio.
Создайте проект "Hello, World!" и введите его исходный код. Если вы еще не сделали этого, выполните действия, описанные в разделе Создание проекта консольного приложения С++.
Если Visual Studio выглядит следующим образом, можно приступать к сборке и запуску приложения:
Сборка и запуск кода в Visual Studio
Для сборки проекта выберите в меню Сборка пункт Собрать решение. Окно Вывод отображает результаты процесса сборки.
Чтобы запустить этот код, в строке меню выберите Отладка и Запуск без отладки.
Поздравляем! Вы создали свое первое консольное приложение "Hello World" в Visual Studio! Нажмите любую клавишу, чтобы закрыть окно консоли и вернуться в редактор Visual Studio.
Выполнение кода в командном окне
Обычно консольные приложения запускаются из командной строки, а не в Visual Studio. После того как приложение будет создано в Visual Studio, его можно запустить из любого командного окна. Вот как можно найти и запустить новое приложение в окне командной строки.
В обозревателе решений выберите решение HelloWorld (а не проект HelloWorld) и щелкните правой кнопкой мыши, чтобы открыть контекстное меню. Выберите Открыть папку в проводнике, чтобы открыть окно проводника в папке решения HelloWorld.
В окне проводника откройте папку Debug. В этой папке содержится ваше приложение, HelloWorld.exe и несколько других файлов отладки. Удерживая нажатой клавишу SHIFT, щелкните правой кнопкой мыши HelloWorld.exe, чтобы открыть контекстное меню. Выберите команду Копировать как путь, чтобы скопировать путь к приложению в буфер обмена.
Чтобы открыть окно командной строки, нажмите Windows + R, чтобы открыть диалоговое окно Выполнить. Введите cmd.exe в текстовом поле Открыть, а затем выберите ОК для запуска окна командной строки.
В окне командной строки щелкните правой кнопкой мыши, чтобы вставить путь к приложению в командную строку. Нажмите клавишу ВВОД, чтобы запустить приложение.
Поздравляем! Вы создали и запустили консольное приложение в Visual Studio.
Следующие шаги
После создания и запуска этого простого приложения можно приступать к более сложным проектам. Дополнительные сведения см. в разделе Использование интегрированной среды разработки Visual Studio для разработки приложений для настольных систем на языке C++. В нем содержатся более подробные пошаговые руководства, посвященные возможностям Microsoft C++ в Visual Studio.
Руководство по устранению неполадок
Здесь приведены решения распространенных проблем, которые могут возникнуть при создании первого проекта C++.
Сборка и запуск кода в Visual Studio: проблемы
Если в редакторе исходного кода отображаются красные волнистые линии, то сборка может содержать ошибки или предупреждения. Убедитесь, что код соответствует примеру в написании, пунктуации и регистре.
Выполнение кода в командном окне: проблемы
Если путь, показанный в проводнике, заканчивается на \HelloWorld\HelloWorld, вы открыли проект HelloWorld вместо решения HelloWorld. Вы перепутаете папку Debug, в которой нет вашего приложения. Перейдите на уровень вверх в проводнике, чтобы открыть папку решения — первый HelloWorld в пути. В этой папке также содержится папка Debug, в которой вы найдете свое приложение.
Можно также открыть папку Debug решения в командной строке, чтобы запустить приложение. Приложение не будет запускаться из других каталогов, если не указан путь к приложению. Однако вы можете скопировать приложение в другой каталог и запустить его из него. Также можно скопировать его в каталог, указанный переменной среды PATH, а затем запустить его из любого места.
Если в контекстном меню отсутствует параметр Копировать как путь, закройте меню, а затем удерживайте нажатой клавишу SHIFT при повторном открытии. Эта команда предназначена только для удобства. Можно также скопировать путь к папке из панели поиска проводника и вставить его в диалоговое окно Выполнить, а затем ввести имя исполняемого файла в конце. При этом потребуется чуть больше действий по вводу текста, но результат будет тем же.
При работе с командной строкой и написании командных файлов часто возникает необходимость в запуске других программ. В данной статье мы рассмотрим несколько способов, как можно запускать программы через командную строку в операционных системах Windows 10 и Windows 7.
Запуск по названию исполняемого файла
Многие программы в командной строке можно запускать просто указав название их исполняемого файла. Например, вы можете ввести в командную строку « notepad » и запустить программу « Блокнот » или ввести « mspaint » и запустить « Paint ».
Это работает благодаря переменной окружения « PATH » в которой записан список папок, где Windows должна искать исполняемые файлы для программ. Список этих папок можно просмотреть, если ввести в командную строку команду « path ».
Если вы хотите запустить программу из другой папки, которая не указана в переменной « PATH », то вы можете временно изменить папку для поиска исполняемых файлов. Для этого нужно ввести команду « path » и через пробел указать путь к нужной папке. Например, мы можем указать путь к папке с программой AkelPad:
И потом запустить эту программу выполнив команду «akelpad»:
Нужно отметить, что команда «path» влияет только на текущий сеанс командной строки, при этом значение переменной « PATH » не меняется.
Запуск с указанием полного пути
Еще один способ запуска программ – это указание полного пути к исполняемому exe-файлу. Для этого достаточно вставить в командную строку полный путь и указанная программа будет запущена.
Например, для запуска программы AkelPad в командную строку нужно вставить следующее:
Обратите внимание, если путь содержит пробелы, то его нужно взять в кавычки, в других случаях кавычки не обязательны.
Запуск с помощью команды «start»
Также для запуска других программ можно использовать команду «s tart ». С ее помощью можно запускать как программы для командной строки, так и приложения с графическим интерфейсом.
Для запуска программ данным способом нужно ввести команду « start » и через пробел указать название программы. Например, для того чтобы запустить текстовый редактор «Блокнот» нужно выполнить следующее:
Как и в предыдущем случае, Windows будет искать исполняемый файл в папках, которые указаны в переменной окружения « PATH ».
Но, команда « start » позволяет и вручную указать путь к папке с программой. Для этого нужно использовать параметр « /D ».
Например, для того чтобы запустить программу « akelpad » из папки « C:\Program Files (x86)\AkelPad » нужно выполнить следующее:
Одной из особенностей команды «s tart » является то, что она позволяет запускать программы с высоким приоритетом.
Задайте вопрос в комментариях под статьей или на странице «Задать вопрос» и вы обязательно получите ответ.
Если это приложение, зависящее от фреймворка (по умолчанию), вы запускаете его dotnet yourapp.dll .
Если это автономное приложение, вы запускаете его yourapp.exe в Windows и ./yourapp Unix.
@GlenThomas Если вы хотите запустить разрабатываемое приложение, вы используете dotnet run . Кроме того, где вы смотрели? Где вы ожидаете эту информацию? @GlenThomas Это не так, dotnet run работает для новых проектов csproj так же, как и для project.json. @GlenThomas, не уверен, что это ваша проблема, но когда вы пытаетесь ее использовать dotnet run , убедитесь, что вы находитесь в каталоге проекта, а не в каталоге решения.Вы можете очень легко создать EXE (для Windows) без использования каких-либо загадочных команд сборки. Вы можете сделать это прямо в Visual Studio.
Вы также можете запустить свое приложение, как и любые другие консольные приложения, но только после публикации.
Предположим, у вас есть простое консольное приложение с именем MyTestConsoleApp. Откройте консоль диспетчера пакетов и выполните следующую команду:
-c флаг означает, что вы хотите использовать конфигурацию отладки (в другом случае вы должны использовать значение Release) - r флаг означает, что ваше приложение будет работать на платформе Windows с архитектурой x64.
Когда процедура публикации будет завершена, вы увидите файл * .exe, расположенный в каталоге bin / Debug / publish.
Теперь вы можете вызвать его с помощью инструментов командной строки. Поэтому откройте окно CMD (или терминал), перейдите в каталог, где находится ваш файл * .exe, и напишите следующую команду:
С помощью dotnetcore3.0 вы можете упаковать все решение в один исполняемый файл, используя PublishSingleFile свойство
Пример Self Contained , Release OSX исполняемого файла:
Пример Self Contained , Debug Linux 64bit исполняемым:
Сборка Linux не зависит от дистрибутива, и я обнаружил, что они работают на Ubuntu 18.10, CentOS 7.7 и Amazon Linux 2.
Автономный исполняемый файл включает Dotnet Runtime, и Runtime не требует установки на целевой машине. Опубликованные исполняемые файлы сохраняются в:
<ProjectDir>/bin/<Release or Debug>/netcoreapp3.0/<target-os>/publish/ в Linux, OSX и
<ProjectDir>\bin\<Release or Debug>\netcoreapp3.0\<target-os>\publish\ на винде.
Вы также можете добавить конфигурацию в файл csproj: <PublishSingleFile>true</PublishSingleFile>Чтобы запустить консольный проект с помощью командной строки Windows, выберите конкретный путь из своего каталога и введите следующую команду
Читайте также: