Comment comstackr et exécuter C dans sublime text 3?

Je voudrais comstackr et exécuter le programme C en sublime text 3 sur Ubuntu 14.04. Actuellement, le programme est compilé avec gcc avec sublime text 3 en exécutant une commande (voir le code ci-dessous), mais je me demandais s’il était possible que la sortie de l’exécution du programme apparaisse également sur la console sublime text.

Voici ce que je dois actuellement comstackr programme C avec sublime text 3

c_comstack.sublime-build

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

J’ai essayé d’append && ./${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 cela 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  main(){ printf("Hello world"); } 

J’ai cherché en ligne une solution, mais les réponses suggérées permettent soit de comstackr uniquement (cette partie fonctionne déjà pour moi), soit ne fonctionne pas. Toute idée sur la façon de corriger ce code afin de comstackr et d’exécuter en sublime texte 3 (si possible). Je vous remercie

Éditez # 1 comme suggéré par l’utilisateur2357112:

Après avoir changé de shell en true :

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

C’est ce que je reçois:

 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] 

Editez # 2 comme suggéré par Eugene K:

J’ai essayé de changer de cmd pour exécuter le programme uniquement:

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

Il s’exécute correctement et affiche le résultat sur la console avec du 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, la cmd comstack ou exécute, mais ne fait pas les deux ensemble, en espérant que quelque chose puisse être fait pour la comstackr et l’exécuter avec une seule commande.

    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), que ST3 prend le premier argument comme “programme” et transmet les autres chaînes comme “arguments”. https://docs.python.org/2/library/subprocess.html#subprocess.Popen

    Pour un système de construction sublime implémentant la commande de menu Exécuter:

    • Allez dans Outils-> Construire le système-> Nouveau système de construction …

    Ou

    • Créez 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. N’hésitez pas à remplacer gcc par le compilateur de votre choix.

    Nous pouvons comstackr le code de C dans Sublime Text et imprimer des valeurs ou des chaînes, mais cela n’accepte pas les entrées de l’utilisateur. (Jusqu’à ce que je sache … je suis certain de la compilation, mais pas de la sortie d’une entrée donnée.) Si vous utilisez Windows, vous devez définir les variables d’environnement pour Sublime Text et le compilateur GCC.

    L’instruction est basée sur le post “icemelon”. Lien vers le post:

    comment-je-comstackr-et-exécuter-programme-en-sublime-text-2

    Utilisez le lien ci-dessous pour savoir comment configurer la variable d’environnement sur votre système d’exploitation:

    c_environment_setup

    Les instructions ci-dessous ont été testées sur le système Windows 8.1 et Sublime Text 3 – build 3065.

    1) Installez MinGW. 2) Ajoutez le chemin vers “MinGW \ bin” dans la “variable d’environnement PATH”.

    “Propriétés système -> Avancé -> Environnement” et mettez à jour la variable “PATH”.

    3) Vérifiez ensuite votre variable d’environnement PATH à l’aide de 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:

    Csublime-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 comstackr this and don't add path to your "PATH environment variable" // "path" : "C:\\MinGW\\bin" "variants" : [ { "name": "Run", "cmd" : ["${file_base_name}.exe"] } ] } 

    La dernière version du sublime autorise même la commande directe au lieu de guillemets doubles. 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", } 

    Après une session de recherche de code rigoureuse sur Internet, j’ai finalement mis au point une solution qui vous permet de comstackr + d’exécuter votre code C “ensemble” , en C99 , dans une fenêtre de terminal dédiée . Je sais, quelques personnes n’aiment pas le C99 . Je n’aime pas quelques personnes non plus.

    Dans la plupart des cas, Sublime comstack et exécute le code, mais en version C90 ou inférieure. Donc, si vous voulez spécifiquement que ce soit C99 , c’est la voie à suivre.

    NOTE : Au fait, je l’ai fait sur une machine Windows, je ne peux pas garantir pour les autres! Cela ne fonctionnera probablement pas là-bas.

    1. Créez un nouveau système de génération dans Sublime: Outils> Système de construction> Nouveau système de construction …

    Nouveau système de construction

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

    Très probablement, Sublime l’ouvrira pour vous.

    Sinon, allez dans Préférences> Parcourir les packages> Utilisateur

    Ouvrir nouvelle construction sublime

    Si le fichier untitled.sublime-build est présent , ouvrez-le , s’il ne l’ est pas , créez-le manuellement et ouvrez-le .

    3. Copiez et collez le code ci-dessous dans le fichier untitled.sublime-build mentionné ci-dessus et enregistrez-le.

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

    Fermez le fichier. Tu as presque fini!

    4. Enfin, renommez votre fichier de untitled.sublime-build en myC.sublime-build , ou montrez votre créativité ici. Il suffit de garder la même extension de fichier.

    5. Enfin, définissez le système de construction actuel sur le nom de fichier que vous avez écrit à l’étape précédente. Dans ce cas, c’est myC

    Mettre à jour le système de construction actuel

    Voila! Comstackr + Exécuter votre code C en utilisant C99 par Outils> Construire , ou simplement en appuyant sur Ctrl + B

    Le meilleur moyen serait simplement d’utiliser un Makefile pour votre projet et ST3 détectera automatiquement le système de compilation pour votre projet. Par exemple. Si vous appuyez sur Maj + Ctrl / cmd + B, vous verrez ceci: Make

    essayez d’écrire un script shell nommé run.sh dans votre dossier de projet

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

    et créez un Build System de compilation pour le comstackr et l’exécuter:

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

    N’oubliez pas $chmod +x run.sh

    faire une chose et bien le faire 🙂

    Utilisez-vous du texte sublime sur linux? J’ai eu le même problème et c’était 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" } 

    Le code qui a fonctionné pour moi sur une machine Windows 10 utilisant 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}" } ] } 

    Dans Sublime Text 3 …. Essayez de remplacer le code ci-dessus par ceci, notez l’ajout de “start” …..

    “variantes”: [

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

    Si vous codez en langage C ou C ++. Je pense que nous avons de la chance car nous pourrions utiliser un fichier à saisir. C’est tellement pratique et clair. Je fais souvent ça. Ceci est un argument pour l’implémenter:

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

    Notez que inputfile doit se trouver dans le même répertoire que le fichier de code source, r signifie stand for read.