2012-04-08 18 views
13

Voglio compilare un semplice programma C con GCC. Cosa devo inserire nel file sublime-build per farlo?Come compilare ed eseguire un semplice programma C con Sublime Text 2?

+0

già capito come fare questo, ma non sono riuscito a trovare una risposta adeguata per questo altrove (non per Mac comunque), ho pensato di postarlo qui. – username

+0

vedi anche http://stackoverflow.com/questions/16490889/build-and-run-with-arguments-in-sublime-text-2 per come farlo con argomenti dinamici (vedi plugin InputArgs) –

risposta

14

Mac OS X:

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

di Windows:

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

@ Michael Anthony, grazie per l'heads-up re: Windows e aggiungendo ".exe" – username

+0

Questo è proprio quello di cui avevo bisogno, grazie. – lokson

+0

Come si immettono i valori in fase di esecuzione? Voglio dire, se usiamo 'scanf()', come inserire un valore per quell'istruzione durante il runtime dal testo sublime? – Greenhorn

2

La risposta accettata non ha funzionato per me.

Quello che ho fatto è il seguente:

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

Impostazione shell per true significa che legge la riga cmd come uno, così io chiamo make per compilare e quindi eseguire lo script. L'altra opzione è di avere shell impostato su false ma non è possibile eseguire più cmd. Quindi l'unico modo ho ottenuto il lavoro era avere lo rendono il file con CMD + B e quindi eseguirlo con CMD + Shift + B:

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

    "variants": [ 
    { 
     "cmd" : ["./$file_base_name"], 
     "name": "Run" 
    } 
    ] 
} 
0

In Windows, compilare ed eseguire, con file_regex

{ 
    "cmd": ["gcc", "$file_name", "-o", "${file_base_name}.exe", "&&", "${file_base_name}.exe"], 
    "file_regex": "^([^:]+):([0-9]+):", 
    "selector": "source.c", 
    "shell": true, 
    "working_dir": "$file_path" 
} 
0

Per Mac

{ 
"cmd": ["bash", "-c", "g++ '${file}' -o '${file_path}/${file_base_name}' && osascript -e 'tell application \"Terminal\" to activate do script \"clear&&${file_path}/${file_base_name} && read -p \\\"Press Enter to exit.\\\"&&exit\"'"], 
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$", 
"working_dir": "${file_path}", 
"selector": "source.c, source.c++", 

"variants": 
[ 
    { 
     "name": "Run", 
     "cmd": ["bash", "-c", "g++ '${file}' -o '${file_path}/${file_base_name}' && '${file_path}/${file_base_name}'"] 
    } 
] 

}

Per le finestre

{ 
"cmd": ["g++", "${file}", "-o","${file_path}/${file_base_name}"], 
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:?(.*)$", 
"working_dir": "${file_path}", 
"encoding":"cp936", 
"selector": "source.c", 
"variants": 
[ 
    { 
    "name": "Run", 
    "cmd": ["cmd","/C","start","cmd","/c", "${file_path}/${file_base_name}.exe &pause"] 
    } 
] 
} 

I file di configurazione di cui sopra si rendono i dati di input del terminale (Mac) o cmd (finestre), l'uscita è stato anche mostrato nel terminale o cmd.

0

LINUX! Compilazione e l'esecuzione in Terminal, linguaggio C
creare un nuovo sistema di costruzione e incolla questo codice:

{ 
"cmd": ["xterm-256color -e 'zsh -c \"gcc $file_name -o ${file_base_name} && ./${file_base_name} ;echo;echo Presiona ENTER para salir...; read line\"'"], 
"selector" : "source.c", 
"shell": true 
} 

echo $SHELL = To know which shell you use (zsh)-------------------------------------------------------------echo $TERM = To know which terminal you use (xterm-256color)-------------------------------------------

: D

Problemi correlati