Wie kann man C in sublime text 3 kompilieren und ausführen?
Lesezeit: 8 Minuten
CMPS
Ich möchte ein C-Programm in Sublime Text 3 auf Ubuntu 14.04 kompilieren und ausführen. Derzeit wird das Programm mit gcc kompiliert, wobei sublime text 3 einen Befehl ausführt (siehe Code unten), aber ich habe mich gefragt, ob es möglich ist, dass die Ausgabe der Programmausführung auch auf der sublime text-Konsole erscheint.
Folgendes muss ich derzeit zum Kompilieren des C-Programms mit erhabenem Text 3
Ich habe online nach einer Lösung gesucht, aber vorgeschlagene Antworten erlauben entweder nur das Kompilieren (diese Teile funktionieren bereits für mich) oder funktionieren nicht. Irgendeine Idee, wie man diesen Code repariert, um Sublime Text 3 zu kompilieren und auszuführen (falls möglich). Vielen Dank
Bearbeiten Sie # 1, wie von user2357112 vorgeschlagen:
Es läuft erfolgreich und druckt die Ausgabe auf der Konsole mit etwas 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]
Bisher wird das cmd entweder kompiliert oder ausgeführt, aber nicht beides zusammen. Hoffentlich kann etwas getan werden, damit es mit einem einzigen Befehl kompiliert und ausgeführt wird.
&& ist eine Schalensache. Dies ist möglicherweise keine gute Idee (ich habe keine Ahnung, wie man Sublime Text 3 verwendet), aber die Einstellung "shell":true könnte die Dinge zum Laufen bringen.
– Benutzer2357112
14. Juni 2014 um 23:57 Uhr
Ich habe kein Sublime Text 3, aber es scheint zu funktionieren, wo es alle Eingaben nach “gcc” als eine Zeile an gcc sendet, zB > gcc “$filename -o .. && …” Sie möchten Entkomme diesen doppelten Anführungszeichen irgendwie. Vielleicht einen 2. “cmd”-Eintrag machen? oder vielleicht die Shell auf True setzen.
– Eugen K
14. Juni 2014 um 23:58 Uhr
@ user2357112 nachdem ich die Shell auf true geändert habe, habe ich diese Fehlermeldung erhalten: gcc: fatal error: no input files, compilation terminated. Anstatt von gcc: error: &&. Ich denke, Sie hatten Recht mit der Shell-Sache, aber es funktioniert immer noch nicht :/
– CMPS
15. Juni 2014 um 0:04 Uhr
@EugeneK Nach dem Hinzufügen eines weiteren cmd wie folgt: cmd:["./${file_base_name}"], jetzt wird die erste überschrieben und die Datei läuft nur noch ohne Kompilierung, was hoffentlich eine vielversprechende Lösung zeigt. Danke für Ihren Vorschlag
– CMPS
15. Juni 2014 um 0:19 Uhr
Okay, andere Vermutung. Ich weiß nicht viel über Linux, aber vielleicht ein exit oder so etwas dazwischen gcc Befehlsbündel und die filename Teil könnte den Trick tun.
– Utkan Geser
15. Juni 2014 um 0:58 Uhr
Erbrücke
Haben Sie versucht, einfach den gesamten Befehl in einer einzigen Zeichenfolge zu schreiben?
Neugierig auf diese Lösung, würde in Einklang mit meiner Vorstellung stehen, wie sie funktionieren muss.
– Eugen K
15. Juni 2014 um 3:15 Uhr
Danke, das funktioniert tatsächlich mit Shell = true; Das einzige Problem, das meiner Meinung nach nicht lösbar ist, ist das Einholen von Benutzereingaben.
– CMPS
15. Juni 2014 um 5:45 Uhr
AFAIK, ST3 unterstützt keine Benutzereingaben in seinen Build-Systemen.
– erbridge
15. Juni 2014 um 10:12 Uhr
Für den Fall, dass es zukünftigen Programmierern einige Kopfschmerzen erspart, wollte ich nur darauf hinweisen, dass Sie dies in einer Build-System-Konfigurationsdatei platzieren sollten, indem Sie zu Tools > Build System > New Build System gehen, und NICHT in einer Einstellungs-Konfigurationsdatei (Preferences > Settings – More > Syntaxspezifisch).
– Jerreck
3. September 2015 um 14:28 Uhr
Welche Bearbeitungen wären erforderlich, um alle Warnungen und Fehler anzuzeigen, die während der Kompilierung auftreten könnten?
– Jonath P
11. Mai 2017 um 15:23 Uhr
Für ein großartiges Build-System, das den Menübefehl Run implementiert:
Gehen Sie zu Tools->Build-System->Neues Build-System…
Oder
Erstellen Sie eine Datei ~/.config/sublime-text-3/Packages/User/GCC.sublime-build
*Dieses Beispiel verwendet den GCC-Compiler. Fühlen Sie sich frei zu ersetzen gcc mit dem Compiler Ihrer Wahl.
Nach einer strengen Code-Jagd Session über das Internet habe ich endlich eine Lösung gefunden, die es Ihnen ermöglicht kompilieren + ausführen Ihr C-Code “auf einmal zusammen”in C99in einem spezielles Terminalfenster. Ich weiß, ein paar Leute mögen es nicht C99. Ein paar Leute mag ich auch nicht.
In den meisten Fällen Sublime kompiliert und läuft den Code, aber in C90 oder einer niedrigeren Version. Also wenn du möchte ausdrücklich, dass es C99 istdas ist der richtige Weg.
HINWEIS: Übrigens, ich habe das auf einem Windows-Rechner gemacht, kann für andere nicht garantieren! Da wird es wohl nicht funktionieren.
1. Erstellen Sie ein neues Build-System in Sublime: Extras > Buildsystem > Neues Buildsystem…
2. Eine neue Datei namens untitled.sublime-build erstellt würde.
Höchstwahrscheinlich wird Sublime es für Sie öffnen.
Wenn nicht, gehen Sie zu Einstellungen > Pakete durchsuchen > Benutzer
Wenn die Datei untitled.sublime-buildGibt esdann öffne eswenn es ist nicht dadann manuell erstellen und öffne es.
3. Kopieren Sie den unten angegebenen Code und fügen Sie ihn in den oben genannten ein untitled.sublime-build Datei und speichern Sie sie.
4. Schließlich benennen Sie Ihre Datei um untitled.sublime-build zu myC.sublime-build, oder Sie können hier genauso gut Ihre Kreativität zeigen. Behalten Sie einfach die Dateierweiterung bei.
5. Endlich setze die aktuelles Build-System zu dem Dateinamen, den Sie im vorherigen Schritt geschrieben haben. In diesem Fall ist es myC
Voila! Kompilieren + Ausführen Ihren C-Code mit C99 von Extras > Erstellen oder durch einfaches Drücken Ctrl + B
rock321987
Wir können den Code von C in Sublime Text kompilieren und einige Werte oder Zeichenfolgen drucken, aber es nicht Akzeptieren Sie Eingaben vom Benutzer. (Bis ich weiß … ich bin sicher über das Kompilieren, aber nicht über die Ausgabe von gegebenen Eingaben.) Wenn Sie Windows verwenden, müssen Sie die Umgebungsvariablen für Sublime Text und den GCC-Compiler setzen.
Mach
Die Anleitung basiert auf dem „Eismelonen“-Pfosten. Link zum Beitrag:
// 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"]
}
]
}
Akansh
Der neueste Build von sublime erlaubt sogar den direkten Befehl anstelle von doppelten Anführungszeichen. Probieren Sie den folgenden Code für das Build-System aus
Der beste Weg wäre, einfach ein Makefile für Ihr Projekt zu verwenden, und ST3 erkennt automatisch das Build-System für Ihr Projekt. Zum Beispiel. Wenn Sie Umschalt + Strg / cmd + B drücken, sehen Sie Folgendes:
13935100cookie-checkWie kann man C in sublime text 3 kompilieren und ausführen?yes
&&
ist eine Schalensache. Dies ist möglicherweise keine gute Idee (ich habe keine Ahnung, wie man Sublime Text 3 verwendet), aber die Einstellung"shell":true
könnte die Dinge zum Laufen bringen.– Benutzer2357112
14. Juni 2014 um 23:57 Uhr
Ich habe kein Sublime Text 3, aber es scheint zu funktionieren, wo es alle Eingaben nach “gcc” als eine Zeile an gcc sendet, zB > gcc “$filename -o .. && …” Sie möchten Entkomme diesen doppelten Anführungszeichen irgendwie. Vielleicht einen 2. “cmd”-Eintrag machen? oder vielleicht die Shell auf True setzen.
– Eugen K
14. Juni 2014 um 23:58 Uhr
@ user2357112 nachdem ich die Shell auf true geändert habe, habe ich diese Fehlermeldung erhalten: gcc:
fatal error: no input files, compilation terminated.
Anstatt vongcc: error: &&
. Ich denke, Sie hatten Recht mit der Shell-Sache, aber es funktioniert immer noch nicht :/– CMPS
15. Juni 2014 um 0:04 Uhr
@EugeneK Nach dem Hinzufügen eines weiteren cmd wie folgt:
cmd:["./${file_base_name}"]
, jetzt wird die erste überschrieben und die Datei läuft nur noch ohne Kompilierung, was hoffentlich eine vielversprechende Lösung zeigt. Danke für Ihren Vorschlag– CMPS
15. Juni 2014 um 0:19 Uhr
Okay, andere Vermutung. Ich weiß nicht viel über Linux, aber vielleicht ein
exit
oder so etwas dazwischengcc
Befehlsbündel und diefilename
Teil könnte den Trick tun.– Utkan Geser
15. Juni 2014 um 0:58 Uhr