Как скомпилировать и запустить 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]
вот моя простая программа C, с которой я работаю:
Ex1-6.c
#include <stdio.h>
main(){
printf("Hello world");
}
Я искал в Интернете решение, но предлагаемые ответы либо позволяют компилировать только (эти части уже работают для меня), либо не работают. Любая идея, как исправить этот код, чтобы скомпилировать и запустить в sublime text 3 (Если это возможно). Благодарить вы
редактировать #1, Как предложено user2357112:
после изменения shell
to 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, как предложил Евгений K:
Я попытался изменить 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]
пока ЦМД либо компилирует или работает, но не делает оба вместе, надеюсь, что-то можно сделать, чтобы сделать его компилировать и запускать с помощью одной команды.
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". Ссылка на сообщение:
how-do-I-compile-and-run-a-c-program-in-sublime-text-2
используйте ссылку ниже, чтобы узнать, как настроить переменную среды в вашей ОС:
приведенная ниже инструкция была протестирована на системе Windows 8.1 и Sublime Text 3-build 3065.
1) Установите MinGW. 2) Добавьте путь к "MinGW\bin" в " PATH переменная окружения."
" системные свойства -> дополнительно -> переменные среды "и там обновить переменную "путь".
3) затем проверьте переменную среды PATH командой ниже в "командной строке":
echo %path%
4) Добавьте новую систему сборки в текст Sublime.
моя версия кода ниже ("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",
}
после тщательного код-охота сеанс через интернет, я наконец придумал решение, которое позволяет compile + run ваш код C "в", в C99, в выделенное окно терминала. Я знаю, некоторые люди не любят 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
to 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}"
}
]
}
В Sublime Текст 3....Попробуйте изменить приведенный выше код на этот, обратите внимание на добавление "пуск".....
"вариантов" : [
{ "name": "Run",
"cmd" : ["start", "${file_base_name}.exe"]
}
Если вы кодируете язык C или c++. Я думаю, нам повезло, что мы могли бы использовать файл для ввода. Это так удобно и понятно. Я часто так делаю. Это аргумент для его реализации :
{
freopen("inputfile", "r", stdin);
}
обратите внимание, что inputfile должен находиться в том же каталоге с файлом исходного кода, r-это подставка для чтения.