2012-04-08 8 views
13

Quiero compilar un programa C simple con GCC. ¿Qué necesito poner en el archivo sublime-build para hacerlo?¿Cómo compilar y ejecutar un simple programa en C con Sublime Text 2?

+0

Ya descubierto la manera de hacer esto, pero como no pude encontrar una respuesta adecuada para esto en otro lugar (no para Mac de todos modos), pensé que lo publicaría aquí. – username

+0

también vea http://stackoverflow.com/questions/16490889/build-and-run-with-arguments-in-sublime-text-2 para saber cómo hacer esto con argumentos dinámicos (vea el plugin InputArgs) –

Respuesta

14

Mac OS X:

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

de Windows:

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

@Michael Anthony, gracias por el heads-up re: Windows y agregar ".exe" – username

+0

Eso es justo lo que necesitaba, gracias. – lokson

+0

¿Cómo se ingresan los valores en tiempo de ejecución? Me refiero a si usamos 'scanf()', ¿cómo ingresar un valor para esa instrucción durante el tiempo de ejecución del texto sublime? – Greenhorn

2

La respuesta aceptada no funcionó para mí.

Lo que hice es la siguiente:

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

Configuración shell a true significa que lee el cmd como una sola línea, así que llame a make para compilar y ejecutar la secuencia de comandos. La otra opción es tener shell establecido en false pero no puede ejecutar múltiples cmd. Por lo que la única manera que tengo que trabajar era hacer que tenga el archivo con CMD + B y luego ejecutarlo 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

En las ventanas, compilar y ejecutar, 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

Para 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}'"] 
    } 
] 

}

Para ventanas

{ 
"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"] 
    } 
] 
} 

Los archivos de configuración de arriba hacen que los datos de entrada en el terminal (Mac) o cmd (ventanas), la salida también se muestra en el terminal o cmd.

0

LINUX! Compilar y ejecutar en el terminal, lenguaje C
crear un nuevo sistema de construcción y pega este código:

{ 
"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

Cuestiones relacionadas