Comment compiler et exécuter C en texte sublime 3?

je voudrais compiler et exécuter le programme C dans le texte sublime 3 sur ubuntu 14.04. Actuellement le programme est compilé avec gcc en utilisant sublime text 3 en exécutant une commande (voir code ci-dessous), mais je me demandais s'il était possible d'avoir la sortie d'exécution de programme pour apparaître sur sublime Text console aussi.

voici ce que j'ai actuellement pour compiler le programme C avec le texte sublime 3

c_compile.sublime-build

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

j'ai essayé d'ajouter && ./${file_base_name} comme ceci:

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

Mais ça me donne cette erreur:

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]

Voici mon programme C simple avec lequel je travaille:

Ex1-6.c

#include <stdio.h>

main(){
    printf("Hello world");
}

j'ai cherché en ligne une solution mais les réponses suggérées permettent de compiler seulement (cette partie fonctionne déjà pour moi), ou ne fonctionne pas. N'importe quelle idée sur la façon de corriger ce code afin de compiler et exécuter dans le texte sublime 3 (si possible). Merci vous

Edit #1 comme suggéré par user2357112:

Après avoir changé shelltrue:

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

c'est ce Que j'obtiens:

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]

Edit #2 comme suggéré par Eugène K:

j'ai essayé de changer cmd pour exécuter le programme:

{
"cmd" : ["./${file_base_name}"],
"selector" : "source.c",
"shell":false,
"working_dir" : "$file_path"
}

il tourne avec succès et imprime la sortie sur la console avec un certain code:

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]

jusqu'à présent, le cmd compile ou exécute mais ne fait pas les deux ensemble, j'espère que quelque chose peut être fait pour le faire compiler et exécuter avec une seule commande.

35
demandé sur CMPS 2014-06-15 03:51:51

12 réponses

avez-vous essayé d'écrire toute la commande en une seule chaîne?

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

je crois (semi-spéculation ici), qui ST3 prend le premier argument est le "programme" et passe les autres chaînes comme "arguments". https://docs.python.org/2/library/subprocess.html#subprocess.Popen

40
répondu erbridge 2014-06-15 01:23:08

Pour une sublime système de construction, la mise en œuvre de l'Exécution de la commande de menu :

  • allez à outils - > construire le système - > Nouveau construire le système...

Ou

  • Créer un fichier ~/.config/sublime-text-3/Packages/User/GCC.sublime-build

Et insérez ceci:

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

*cet exemple utilise le compilateur GCC. Hésitez pas à remplacer gcc avec le compilateur de votre choix.

23
répondu Gonen 2015-01-14 02:42:44

nous pouvons compiler le code de C dans le texte Sublime et pouvons imprimer de la valeur ou des chaînes mais il ne pas accepter l'entrée de l'utilisateur. (Jusqu'à ce que je sais... Je suis sûr de compiler mais pas sur la sortie à partir d'un input donné.) Si vous utilisez Windows, vous devez définir les variables d'environnement pour le texte Sublime et le compilateur GCC.

3
répondu rock321987 2014-09-27 17:06:58

L'Instruction est basée sur le poteau" icemelon". Lien vers le post:

how-do-i-compilation-et-courir-a-c-programme-en-sublime-text-2

utilisez le lien ci-dessous pour savoir comment configurer la variable Environment sur votre système D'exploitation:

c_environment_setup

1) Installer MinGW. 2) Ajouter le chemin au "MinGW\bin" dans le " chemin la variable d'environnement".

"Propriétés Système -> Avancé -> Environnement", les variables et il y a de mise à jour "CHEMIN" de la variable.

3) puis vérifiez votre variable D'environnement PATH par la commande ci-dessous dans L'invite de commande:

echo %path%

4) Ajouter un nouveau système de construction au texte Sublime.

ma version du code ci-dessous ("C. sublime-build").

lien vers le code:

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"]
        }
    ]
}
1
répondu Maks 2017-05-23 11:54:46

La Dernière construction du sublime permet même la commande directe au lieu de guillemets. Essayez le code ci-dessous pour le système de construction

{
    "cmd" : ["gcc $file_name -o ${file_base_name} && ./${file_base_name}"],
    "selector" : "source.c",
    "shell": true,
    "working_dir" : "$file_path",
}
1
répondu Akansh Gulati 2016-06-15 14:21:03

après un rigoureux chasse au code session sur internet, j'ai finalement trouvé une solution qui vous permet d' compiler + run votre code C "ensemble à la fois", en C99 dans un fenêtre de terminal dédiée. Je sais, peu de personnes ne l'aiment pas C99. Je n'aime pas quelques personnes non plus.

Dans la plupart des cas Sublime compile et s'exécute la code, mais en C90 ou dans une version plus petite. Donc, si vous plus précisément le souhaitez C99, c'est le chemin à parcourir.

NOTE:Btw, j'ai fait cela sur une machine Windows, ne peut pas garantir pour les autres! Ça ne marchera probablement pas là-bas.

1. Créer un nouveau système de construction en bois: Outils > Système De Construction > Construction De La Nouvelle Système...

New Build System

2. Un nouveau fichier appelé untitled.sublime-build serait créé.

très probablement, Sublime l'ouvrira pour vous.

Si non, allez à Préférences > Parcourir Les Paquets > Utilisateur

Open new sublime-build

Si le fichier untitled.sublime-build, puis ouvrir, si c' n'est-ce pas il y a, puis créer manuellement et ouvrir.

3. Copiez et collez le code indiqué ci-dessous dans leuntitled.sublime-build le fichier et l'enregistrer.

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

fermer le fichier. Vous avez presque terminé!

4. Enfin renommer votre fichier de untitled.sublime-buildmyC.sublime-build, ou vous pouvez ainsi montrer votre créativité ici. Gardez l'extension du fichier identique.

5. Enfin définir système de construction actuel au nom du fichier que vous avez écrit à l'étape précédente. Dans ce cas, il est myC

Update current build system

Voila ! Compiler + Run votre code C à l'aide du C99 par Outils > Construction , ou en appuyant simplement sur Ctrl + B

1
répondu Sayan Sil 2017-08-07 13:28:19

Le meilleur moyen serait d'utiliser un Makefile pour votre projet et ST3 détecte automatiquement le système de construction pour votre projet. Exemple. Si vous appuyez sur maj + ctrl/cmd +B, vous verrez ceci: Make

1
répondu Sergei Nazarenko 2017-10-12 21:07:03

essayez d'écrire un script shell nommé run.sh dans votre projet foler

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

et faire un Build System pour le compiler et l'exécuter:

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

ne pas oublier $chmod +x run.sh

faire une chose et le faire bien:)

0
répondu Lw Cui 2015-04-27 10:03:00

Utilisez-vous du texte sublime sur linux? J'ai eu le même problème et il a été résolu! Voici mon C. sublime-build:

{
 "shell_cmd" : "gcc $file_name -o $file_base_name && ./$file_base_name", 
 "selector" : "source.c",
 "shell":true,
 "working_dir" : "$file_path"
}
0
répondu DucNgo 2016-06-27 15:54:45

le code qui a fonctionné pour moi sur une machine Windows 10 en utilisant le texte Sublime 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}"
     }
   ]
}
0
répondu thebluebloo 2017-01-08 12:45:55

En Texte Sublime 3....Essayez de changer le code ci-dessus pour cela, notons l'ajout de "démarrer".....

"variantes" : [

    { "name": "Run",
      "cmd" : ["start", "${file_base_name}.exe"]
    } 
0
répondu Neil 2017-06-14 19:55:11

Si tu code en langage C ou C++. Je pense que nous sommes chanceux parce que nous pourrions utiliser un fichier pour entrer. Il est tellement pratique et clair. Je le fais souvent. C'est l'argument à mettre en œuvre :

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

notez que inputfile doit localiser dans le même répertoire avec le fichier de code source, r signifie lire.

0
répondu DungVN 2017-07-26 10:49:44