Подтвердить что ты не робот

Как скомпилировать и запустить C в возвышенном тексте 3?

Я хотел бы скомпилировать и запустить программу C в возвышенном тексте 3 на ubuntu 14.04. В настоящее время программа скомпилируется с помощью gcc, используя возвышенный текст 3, выполняющий команду (см. Ниже код), но мне было интересно, возможно ли, чтобы вывод выполнения программы появлялся и на возвышенной текстовой консоли.

Вот то, что я в настоящее время должен скомпилировать программу C с возвышенным текстом 3

c_compile.sublime-сборки

{
"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");
}

Я искал в Интернете решение, но предлагаемые ответы либо позволяют компилировать только (эта часть уже работает для меня), либо не работает. Любая идея, как исправить этот код, чтобы скомпилировать и запустить в возвышенном тексте 3 (если возможно). Спасибо вам

Изменить # 1, как предложено пользователем2357112:

После изменения 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 либо компилируется, либо работает, но не делает этого вместе, надеюсь, что что-то можно сделать, чтобы скомпилировать и запустить с помощью одной команды.

4b9b3361

Ответ 1

Вы пытались просто написать всю команду в одной строке?

{
"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

Ответ 2

Для возвышенной системы сборки, реализующей команду меню "Выполнить":

  • Перейдите в Инструменты- > Система сборки- > Новая система сборки...

Или

  • Создать файл ~/.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 компилятором по вашему выбору.

Ответ 3

Мы можем скомпилировать код C в Sublime Text и можем печатать некоторые значения или строки, но не принимает данные от пользователя. (До тех пор, пока я не знаю... Я уверен в компиляции, но не о выходе из данного ввода.) Если вы используете Windows, вы должны установить переменные среды для компилятора Sublime Text и GCC.

Ответ 4

Инструкция основана на записи "icemelon". Ссылка на сообщение:

how-do-i-compile-and-run-a-c-program-in-sublime-text-2

Используйте приведенную ниже ссылку, чтобы узнать, как настроить переменную окружения в ОС:

c_environment_setup

Приведенная ниже инструкция была протестирована в системе Windows 8.1 и в Sublime Text 3 - build 3065.

1) Установите MinGW. 2) Добавьте путь к "MinGW\bin" в "переменной среды PATH".

"Свойства системы → Дополнительно → Окружающая среда" и там обновлена ​​переменная "PATH".

3) Затем проверьте свою переменную среды PATH с помощью команды ниже в "Командная строка":

echo %path%

4) Добавьте новую систему сборки в возвышенный текст.

Моя версия кода ниже ( "C.sublime-build" ).

ссылка на код:

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"]
        }
    ]
}

Ответ 5

Последняя сборка возвышенного даже позволяет использовать прямую команду вместо двойных кавычек. Попробуйте приведенный ниже код для системы сборки

{
    "cmd" : ["gcc $file_name -o ${file_base_name} && ./${file_base_name}"],
    "selector" : "source.c",
    "shell": true,
    "working_dir" : "$file_path",
}

Ответ 6

После строгого сеанса поиска кода через Интернет я наконец придумал решение, которое позволяет скомпилировать + запустить ваш код 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 на myC.sublime-build, или вы также можете показать свое творчество здесь. Просто сохраните расширение файла.

5. Наконец установите текущую систему сборки в имя файла, которое вы написали на предыдущем шаге. В этом случае это myC

Обновить текущую сборку системы

Вуаля! Compile + Run ваш C-код с помощью C99 с помощью Инструменты > Сборка или просто нажав Ctrl + B

Ответ 7

Лучший способ - просто использовать Makefile для вашего проекта, и ST3 автоматически обнаружит систему сборки для вашего проекта. Например. Если вы нажмете shift + ctrl/cmd + B, вы увидите следующее: Make

Ответ 8

попробуйте написать оболочку script с именем run.sh в файле проекта

#!/bin/bash
./YOUR_EXECUTIVE_FILE
...AND OTHER THING

и сделайте Build System для его компиляции и выполнения:

{
      "shell_cmd": "make all && ./run.sh"
}

не забывайте $chmod +x run.sh

сделайте одно и сделайте это хорошо:)

Ответ 9

Используете ли вы возвышенный текст в 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"
}

Ответ 10

Код, который работал у меня на машине под 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}"
     }
   ]
}

Ответ 11

В Sublime Text 3.... Попробуйте изменить вышеприведенный код на это, обратите внимание на добавление "start".....

"варианты": [

    { "name": "Run",
      "cmd" : ["start", "${file_base_name}.exe"]
    } 

Ответ 12

Если вы кодируете язык C или С++. Я думаю, нам повезло, потому что мы могли использовать файл для ввода. Это так удобно и понятно. Я часто это делаю. Это аргумент для его реализации:

{
freopen("inputfile", "r", stdin);
}

Обратите внимание, что входной файл должен находиться в той же директории с файлом исходного кода, r стоит для чтения.