Как запустить программы на внешней консоли с помощью Sublime Text в системе Windows?
Мне удалось настроить Sublime Text 2 для С++, и теперь я могу скомпилировать свой код (используя компилятор MinGW).
К сожалению, консоль Sublime Text не может поддерживать какой-либо вход для С++.
Я хочу открыть свою скомпилированную программу на внешней консоли (например, в Window Terminal).
Я пытался использовать "call" или "cmd", но не мог заставить его работать. (он все еще открывает файл в консоли)
Здесь моя конфигурация сборки:
{
"cmd": ["C:\\MinGW\\bin\\mingw32-g++.exe", "-Wall", "-time", "$file", "-o", "$file_base_name"],
"cmd": ["call", "$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"working_dir": "${project_path:${folder}}",
"selector": "source.c",
"shell": true,
"encoding": "latin1"
}
Ответы
Ответ 1
Попробуйте следующее:
{
"cmd": ["C:\\Dev-Cpp\\bin\\mingw32-g++.exe", "-static", "-Wall", "-time", "$file", "-o", "$file_base_name.exe", "&&", "start", "$file_base_name"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"working_dir": "${project_path:${folder}}",
"selector": "source.c",
"shell": true,
"encoding": "latin1"
}
Хитрость заключается в том, чтобы выполнить сгенерированный файл с помощью команды "start", которая заставляет файл открываться в новом окне cmd и помещать все в первое определение cmd (используя && для выполнения две команды), потому что если вы определяете более одного массива cmd, они перезаписываются.
Ответ 2
@FacundoJ: на Mac вы можете использовать терминал для запуска приложения извне. В С++. Sublime-build измените cmd так, чтобы вместо запуска скомпилированного вывода он запускает его в Terminal.
Изменить:
"cmd": ["bash", "-c", "g++ '${file}' -o '${file_path}/${file_base_name}' && '${file_path}/${file_base_name}'"]
To:
"cmd": ["bash", "-c", "g++ '${file}' -o '${file_path}/${file_base_name}' && open -a Terminal.app '${file_path}/${file_base_name}'"]
Ответ 3
В принятом ответе от @FacundoJ вы скомпилируете программу каждый раз, когда вы ее запускаете. Это не всегда необходимо (т.е. Когда вы просто модифицируете некоторые внешние ресурсы или играете с основными аргументами). В этом случае я рекомендую следующие настройки:
{
"cmd": ["g++", "$file", "-o", "$file_base_name.exe"],
"working_dir": "${project_path:$folder}",
"selector": "source.cpp",
"shell": true,
"variants": [{
"name": "Run",
"cmd": ["start", "", "$file_base_name"]
}]
}
(Предположим, что у вас есть C:\MinGW\bin в вашем PATH), поэтому вы можете использовать его как
Примечание1 Обратите внимание на пустую строку после команды start
: следует использовать.
Примечание2, вы должны использовать суффикс .cpp
, или по умолчанию используется синтаксис C89 (по крайней мере, с компилятором MinGW g++)
Ответ 4
Для ubuntu
{
"cmd": ["g++ ${file} && xterm -hold -e ./a.out"],
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"working_dir": "${file_path}",
"selector": "source.c++",
"shell": true,
}
что делает эта сборка, компилирует файл .cpp и открывает выходной файл в xterm.
- > , если вы хотите, чтобы выход был открыт в gnome-terminal, создайте профиль
В gnome-terminal перейдите в Edit → Настройки профиля- > Перейдите на вкладку Command. Выберите "Удержать терминал открыто" в раскрывающемся меню с надписью "Когда команда выйдет". Вы должны создать новый профиль для этого
а затем замените "cmd" на
"cmd": ["g++ ${file} && gnome-terminal --window-with-profile=PROFILENAME -e ./a.out"]
Ответ 5
Принятый ответ позволяет выполнить программу в Windows CMD и принять ввод. Но как только выполнение программы закончено, окно cmd будет закрыто, прежде чем вы сможете четко видеть вывод.
Я думаю, вам следует попробовать следующее решение: , который закрывает окно CMD после выполнения программы, чтобы вы могли проверить результат.
{
"shell_cmd": "g++ -Wall -std=c++11 \"${file}\" -o \"${file_path}/${file_base_name}.exe\"",
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"working_dir": "${file_path}",
"selector": "source.c, source.c++",
"variants":
[ // run in the sublime text console
{
"name": "Run",
"shell_cmd":"\"${file_path}/${file_base_name}\""
},
// run in the Windows cmd
{
"name": "Run in cmd",
// the following two settings are all valid, choose one you prefer
"shell_cmd": "start cmd /k $file_base_name "
// "shell_cmd": "start \"$file_base_name\" call $file_base_name"
}
]
}
Сначала нажмите Ctrl + B, чтобы скомпилировать программу, затем нажмите Ctrl + Shift + B и выберите опцию run in cmd
, которая будет запускать программу в системе CMD вместо Sublime Text консоли.
Вышеуказанные настройки тестируются в Windows 8.1, а также должны работать в Windows 7 и Windows 10.
Ответ 6
Это РАБОТА!
{"cmd": ["g++", "-Wall", "-ansi", "-pedantic-errors", "$file_name", "-o",
"${file_base_name}.exe", "&&", "start", "cmd", "/k" , "$file_base_name"],
"selector": "source.cpp",
"working_dir": "${file_path}",
"shell": true}
- Просто перейдите в Инструменты > Build Sytem > Новая сборка
System... "С++. Sublime-build"... и Должен SAVE это как ВСЕ ФАЙЛЫ
- Выберите эту сборку
Просто введите (ctrl + b), чтобы открыть открытую командную строку с повышенными правами и введите свои входы, как и другие IDE.