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
Ou
~/.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 …
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
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
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:
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.