Je voudrais compiler et exécuter le programme C en sublime text 3 sur Ubuntu 14.04. Actuellement, le programme est compilé avec gcc en utilisant 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 en texte sublime.
Voici ce que je dois actuellement compiler le programme C avec du 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 ça:
{
"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 <stdio.h>
main(){
printf("Hello world");
}
J'ai cherché en ligne une solution, mais les réponses suggérées permettent soit de compiler 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 compiler et d'exécuter en sublime texte 3 (si possible). Je vous remercie
Edit # 1 comme suggéré par user2357112:
Après avoir changé 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]
Edit # 2 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, le cmd compile ou exécute, mais ne fait pas les deux ensemble, en espérant que quelque chose puisse être fait pour le compiler 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
O
~/.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 compiler le code de C dans Sublime Text et imprimer des valeurs ou des chaînes mais ne le fait pas accepter 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.
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 rigoureuse recherche de code sur Internet, j’ai finalement trouvé une solution qui vous permet compilez + exécutez votre code C "ensemble" , en C99, dans une fenêtre de terminal dédiée . Je sais, quelques personnes n'aiment pas C99 . Je n'aime pas quelques personnes non plus.
Dans la plupart des cas, Sublime compile et exécute le code, mais en C90 ou une version inférieure. Donc, si vous voulez spécifiquement que ce soit C99 , c’est la voie à suivre.
[~ # ~] note [~ # ~] : Btw, je l'ai fait sur un ordinateur Windows, je ne peux pas garantir pour les autres! Cela ne fonctionnera probablement pas là!
1. Créez un nouveau système de compilation 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 à Préférences> Parcourir les packages> Utilisateur
Si le fichier untitled.sublime-build
est là , alors ouvrez-le , si elle n’est pas là , alors créez-la 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
À 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, il s’agit de myC
Voilà! Compilez + Exécutez votre code C en utilisant C99 par Outils> Construire, ou en appuyant simplement sur Ctrl + B
L'instruction est basée sur le post "icemelon". Lien vers le post:
comment-faire-compiler-et-exécuter-un-programme-en-sublime-text-2
Utilisez le lien ci-dessous pour savoir comment configurer la variable d'environnement sur votre système d'exploitation:
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:
// 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"]
}
]
}
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 faire un Build System
pour le compiler et l'exécuter:
{
"Shell_cmd": "make all && ./run.sh"
}
n'oublie 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"
}
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. C'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 signifiant lecture.
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"]
}
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}"
}
]
}