Как скомпилировать и запустить C в sublime text 3?
Я хотел бы скомпилировать и запустить программу C в sublime text 3 на ubuntu 14.04. В настоящее время программа компилируется с gcc, используя sublime text 3, выполняющий команду (см. ниже код), но мне было интересно, возможно ли, чтобы выходные данные выполнения программы также появлялись на консоли sublime text.
Вот что мне в настоящее время нужно скомпилировать C-программу с sublime text 3
C_compile.sublime-build
{
"cmd" : ["gcc", "$file_name", "-o", "${file_base_name}"],
"selector" : "source.c",
"shell":false,
"working_dir" : "$file_path"
}
Я пытался добавить && ./${file_base_name} как это:
{
"cmd" : ["gcc", "$file_name", "-o", "${file_base_name}","&&","./${file_base_name}"],
"selector" : "source.c",
"shell":false,
"working_dir" : "$file_path"
}
Но это дает мне такую ошибку:
gcc: error: &&: No such file or directory
[Finished in 0.0s with exit code 1]
[cmd: ['gcc', 'Ex1-6.c', '-o', 'Ex1-6', '&&', './Ex1-6']]
[dir: /home/admin/Desktop/C/book/chap1]
[path: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games]
Вот моя простая программа на языке Си, с которой я работаю:
Экс1-6.c
#include <stdio.h>
main(){
printf("Hello world");
}
Я искал в Интернете решение, но предложенные ответы либо позволяют только компилировать (эта часть уже работает для меня), либо не работают. Любая идея, как исправить этот код, чтобы скомпилировать и запустить в sublime text 3 (Если это возможно). Спасибо
Изменить #1, Как предложено user2357112:
После изменения shell на true:
{
"cmd" : ["gcc", "$file_name", "-o", "${file_base_name}","&&","./${file_base_name}"],
"selector" : "source.c",
"shell":true,
"working_dir" : "$file_path"
}
Вот что я получаю:
gcc: fatal error: no input files
compilation terminated.
[Finished in 0.0s with exit code 4]
[cmd: ['gcc', 'Ex1-6.c', '-o', 'Ex1-6', '&&', './Ex1-6']]
[dir: /home/admin/Desktop/C/book/chap1]
[path: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games]
Редактировать #2, как предложил Юджин к:
Я попытался изменить cmd, чтобы запустить только программу:
{
"cmd" : ["./${file_base_name}"],
"selector" : "source.c",
"shell":false,
"working_dir" : "$file_path"
}
Он успешно запускается и выводит вывод на консоль с некоторым кодом:
Hello world
[Finished in 0.0s with exit code 12]
[cmd: ['./Ex1-6']]
[dir: /home/amir/Desktop/C/book/chap1]
[path: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games]
До сих пор cmd либо компилируется, либо запускается, но не делает то и другое вместе, надеюсь, что-то можно сделать, чтобы заставить его компилироваться и запускаться с помощью одной команды.
12 ответов:
Вы пробовали просто записать всю команду в одной строке?
{ "cmd" : ["gcc $file_name -o ${file_base_name} && ./${file_base_name}"], "selector" : "source.c", "shell": true, "working_dir" : "$file_path" }Я полагаю (полу-спекуляция здесь), что ST3 принимает первый аргумент в качестве " программы "и передает другие строки в качестве"аргументов". https://docs.python.org/2/library/subprocess.html#subprocess.Popen
Для системы sublime build, реализующей команду меню Run:
- перейдите в меню Инструменты - > система сборки - >новая система сборки...
Или
- создайте файл
~/.config/sublime-text-3/Packages/User/GCC.sublime-build
И вставить это:
{ "shell_cmd" : "gcc $file_name -o ${file_base_name}", "working_dir" : "$file_path", "variants": [ { "name": "Run", "shell_cmd": "gcc $file_name -o ${file_base_name} && ${file_path}/${file_base_name}" } ] }*в этом примере используется компилятор GCC. Не стесняйтесь заменить
gccкомпилятором по вашему выбору.
Мы можем скомпилировать код C в Sublime Text и напечатать некоторое значение или строки, но он Не принимает ввод от пользователя. (Пока не узнаю... Я уверен в компиляции,но не в выводе из данного ввода.) Если вы используете Windows, вы должны установить переменные среды для Sublime Text и компилятора GCC.
Инструкция основана на посте "icemelon". Ссылка на сообщение:
Как я скомпилировать и запустить-а-с-программы-в-возвышенное-текст-2
Используйте ссылку ниже, чтобы узнать, как настроить переменную enviroment в вашей операционной системе:
Приведенная ниже инструкция была протестирована на системе Windows 8.1 и Sublime Text 3-build 3065.1) Установите MinGW. 2) Добавьте путь к "MinGW\bin"в" переменной окружения PATH".
" Система Свойства - > дополнительно - > окружение "переменные и там обновить "переменную PATH'.
3) затем проверьте переменную окружения PATH командой ниже в "командной строке":
echo %path%4) Добавить новые системы построения для возвышенного текста.
Моя версия кода ниже ("C. sublime-build").
Ссылка на код:
// Put this file here: // "C:\Users\[User Name]\AppData\Roaming\Sublime Text 3\Packages\User" // Use "Ctrl+B" to Build and "Crtl+Shift+B" to Run the project. // OR use "Tools -> Build System -> New Build System..." and put the code there. { "cmd" : ["gcc", "$file_name", "-o", "${file_base_name}.exe"], // Doesn't work, sublime text 3, Windows 8.1 // "cmd" : ["gcc $file_name -o ${file_base_name}"], "selector" : "source.c", "shell": true, "working_dir" : "$file_path", // You could add path to your gcc compiler this and don't add path to your "PATH environment variable" // "path" : "C:\\MinGW\\bin" "variants" : [ { "name": "Run", "cmd" : ["${file_base_name}.exe"] } ] }
Последняя сборка sublime даже допускает прямую команду вместо двойных кавычек. Попробуйте приведенный ниже код для системы сборки
{ "cmd" : ["gcc $file_name -o ${file_base_name} && ./${file_base_name}"], "selector" : "source.c", "shell": true, "working_dir" : "$file_path", }
После строгого охота за кодом сеанс через интернет, я, наконец, придумал решение, которое позволяет вам компилировать + запускать ваш C-код "вместе сразу" , в С99, в специальном окне терминала . Я знаю, некоторые люди не любят C99 . Мне тоже не нравятся некоторые люди.
В большинстве случаев Sublimeкомпилирует и запускает код, но в C90 или меньшей версии. Так что если Вы конкретно хотите, чтобы это был C99 , это путь.
Примечание: Кстати, я сделал это на машине с Windows, не могу гарантировать для других! Там, наверное, ничего не получится.
1. Создайте новую систему сборки в Sublime: Инструменты > Система Сборки > Новая Система Сборки...
2. Будет создан новый файл с именем
untitled.sublime-build.Скорее всего, Sublime откроет его для вас.
Если нет, перейдите к Предпочтения > Просмотр Пакетов > Пользователь
Если файл
untitled.sublime-buildесть ли , то откройте его , если его нет, то создайте его вручную и откройте его.3. Скопируйте и вставьте приведенный ниже код в указанный выше файл
untitled.sublime-buildи сохраните его.{ "windows": { "cmd": ["gcc","-std=c99" ,"$file_name","-o", "${file_base_name}.exe", "-lm", "-Wall", "&","start", "${file_base_name}.exe"] }, "selector" : "source.c", "shell": true, "working_dir" : "$file_path", }Закройте файл. Вы почти закончили!
4. Наконец переименуйте файл из
untitled.sublime-buildвmyC.sublime-build, или вы могли бы как ну так проявите здесь свое творчество. Просто сохраните расширение файла таким же.5. Наконец, задайте для текущей системы сборкиимя файла, которое вы написали на предыдущем шаге. В данном случае это так
myCВуаля ! Compile + Run ваш C-код, используя C99 by инструменты > сборка , или просто нажав
Ctrl + B
Лучше всего было бы просто использовать Makefile для вашего проекта, и ST3 автоматически определит систему сборки для вашего проекта. Например. Если вы нажмете shift + ctrl / cmd +B, вы увидите следующее:
Попробуйте написать сценарий оболочки с именем run.sh в вашем проекте foler
#!/bin/bash ./YOUR_EXECUTIVE_FILE ...AND OTHER THINGИ сделать
Build System, чтобы скомпилировать и выполнить его:{ "shell_cmd": "make all && ./run.sh" }Не забудь
$chmod +x run.shДелайте одно дело и делайте его хорошо:)
Используете ли вы sublime text в linux? Я получил ту же самую проблему, и она была решена! Вот мой c. sublime-build:
{ "shell_cmd" : "gcc $file_name -o $file_base_name && ./$file_base_name", "selector" : "source.c", "shell":true, "working_dir" : "$file_path" }
Код, который работал для меня на машине с Windows 10, используя Sublime Text 3
{ "cmd" : "gcc $file_name -o ${file_base_name}", "selector" : "source.c", "shell" : true, "working_dir" : "$file_path", "variants": [ { "name": "Run", "cmd": "${file_base_name}" } ] }
В Возвышенном Тексте 3....Попробуйте изменить приведенный выше код на этот, заметьте добавление "start".....
"варианты": [
{ "name": "Run", "cmd" : ["start", "${file_base_name}.exe"] }
Если вы кодируете язык C или C++. Я думаю, нам повезло, потому что мы могли бы использовать файл для ввода. Это так удобно и понятно. Я часто так делаю. Это аргумент для его реализации:
{ freopen("inputfile", "r", stdin); }Обратите внимание, что inputfile должен находиться в одном каталоге с файлом исходного кода, r-это подставка для чтения.



Comments