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é shell
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 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.
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
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.
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.
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:
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:
// 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"]
}
]
}
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",
}
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...
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
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-build
myC.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
Voila !
Compiler + Run votre code C à l'aide du C99 par Outils > Construction , ou en appuyant simplement sur Ctrl + B
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:
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:)
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"
}
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}"
}
]
}
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"]
}
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.