reconoce - ¿Cómo compilar y ejecutar C en el texto sublime 3?
mingw (12)
Me gustaría compilar y ejecutar el programa C en sublime texto 3 en ubuntu 14.04. Actualmente, el programa se está compilando con gcc utilizando sublime texto 3 ejecutando un comando (ver el código a continuación), pero me preguntaba si es posible hacer que la salida de ejecución del programa aparezca también en la sublime consola de texto.
Esto es lo que actualmente tengo para compilar el programa C con texto sublime 3
c_compile.sublime-build
{
"cmd" : ["gcc", "$file_name", "-o", "${file_base_name}"],
"selector" : "source.c",
"shell":false,
"working_dir" : "$file_path"
}
Intenté agregar && ./${file_base_name}
esta manera:
{
"cmd" : ["gcc", "$file_name", "-o", "${file_base_name}","&&","./${file_base_name}"],
"selector" : "source.c",
"shell":false,
"working_dir" : "$file_path"
}
Pero me está dando este error:
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]
Aquí está mi sencillo programa de C con el que estoy trabajando:
Ex1-6.c
#include <stdio.h>
main(){
printf("Hello world");
}
Busqué una solución en línea, pero las respuestas sugeridas me permiten compilar solo (estas partes ya me funcionan) o no funcionan. Alguna idea de cómo corregir este código para compilar y ejecutar en texto sublime 3 (si es posible). Gracias
Edite el # 1 según lo sugerido por user2357112:
Después de cambiar el shell
a true
:
{
"cmd" : ["gcc", "$file_name", "-o", "${file_base_name}","&&","./${file_base_name}"],
"selector" : "source.c",
"shell":true,
"working_dir" : "$file_path"
}
Eso es lo que obtengo:
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]
Edite # 2 como lo sugiere Eugene K:
Intenté cambiar cmd para ejecutar solo el programa:
{
"cmd" : ["./${file_base_name}"],
"selector" : "source.c",
"shell":false,
"working_dir" : "$file_path"
}
Se ejecuta con éxito e imprime la salida en la consola con algún código:
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]
Hasta ahora, el cmd compila o ejecuta, pero no hace las dos cosas juntas, esperamos que se pueda hacer algo para que se compile y se ejecute con un solo comando.
Para un sistema de compilación sublime que implementa el comando del menú Ejecutar:
- Vaya a Herramientas-> Sistema de compilación-> Nuevo sistema de compilación ...
O
- Crea un archivo
~/.config/sublime-text-3/Packages/User/GCC.sublime-build
E inserte esto:
{
"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}"
}
]
}
* Este ejemplo usa el compilador GCC. Siéntase libre de reemplazar gcc
con el compilador de su elección.
¿Estás usando texto sublime en Linux? ¡Tengo el mismo problema y fue resuelto! Aquí está mi c.sublime-build:
{
"shell_cmd" : "gcc $file_name -o $file_base_name && ./$file_base_name",
"selector" : "source.c",
"shell":true,
"working_dir" : "$file_path"
}
¿Has intentado simplemente escribir todo el comando en una sola cadena?
{
"cmd" : ["gcc $file_name -o ${file_base_name} && ./${file_base_name}"],
"selector" : "source.c",
"shell": true,
"working_dir" : "$file_path"
}
Creo (semi-especulación aquí), que ST3 toma el primer argumento como el "programa" y pasa las otras cadenas como "argumentos". https://docs.python.org/2/library/subprocess.html#subprocess.Popen
Después de una sesión de búsqueda de código rigurosa a través de Internet, finalmente se me ocurrió una solución que le permite compilar + ejecutar su código C "juntos a la vez" , en C99 , en una ventana de terminal dedicada . Lo sé, algunas personas no les gusta C99 . No me gustan algunas personas tampoco.
En la mayoría de los casos, Sublime compila y ejecuta el código, pero en C90 o una versión menor. Entonces, si específicamente quieres que sea C99 , este es el camino a seguir.
NOTA : Por cierto, hice esto en una máquina con Windows, ¡no puedo garantizar por otros! Probablemente no funcionará allí.
1. Cree un nuevo sistema de compilación en Sublime: Herramientas> Sistema de compilación> Nuevo sistema de compilación ...
2. Se creará un nuevo archivo llamado untitled.sublime-build
.
Lo más probable es que Sublime lo abra por ti.
De lo contrario, vaya a Preferencias> Buscar paquetes> Usuario
Si el archivo untitled.sublime-build
está allí , ábralo , si no está allí , créelo manualmente y ábralo .
3. Copie y pegue el código siguiente en el archivo untitled.sublime-build
mencionado anteriormente y guárdelo.
{
"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",
}
Cierra el archivo. ¡Estas casi listo!
4. Finalmente cambie el nombre de su archivo de untitled.sublime-build
a myC.sublime-build
, o bien podría mostrar su creatividad aquí. Simplemente mantenga la extensión de archivo igual.
5. Finalmente configure el sistema de compilación actual con el nombre de archivo que escribió en el paso anterior. En este caso, es myC
Voila! Compila + Ejecuta tu código C usando C99 mediante Herramientas> Compilar , o simplemente presionando Ctrl + B
El código que funcionó para mí en una máquina con Windows 10 usando 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}"
}
]
}
En Sublime Text 3 ... Intente cambiar el código anterior a esto, tenga en cuenta la adición de "inicio" .....
"variantes": [
{ "name": "Run",
"cmd" : ["start", "${file_base_name}.exe"]
}
La última versión de sublime incluso permite el comando directo en lugar de comillas dobles. Pruebe el siguiente código para el sistema de compilación
{
"cmd" : ["gcc $file_name -o ${file_base_name} && ./${file_base_name}"],
"selector" : "source.c",
"shell": true,
"working_dir" : "$file_path",
}
La instrucción se basa en la publicación "icemelon". Enlace a la publicación:
how-do-i-compile-and-run-a-c-program-in-sublime-text-2
Utilice el siguiente enlace para descubrir cómo configurar la variable de entorno en su sistema operativo:
La siguiente instrucción fue probada en el sistema Windows 8.1 y Sublime Text 3 - build 3065.
1) Instale MinGW. 2) Agregue la ruta al "MinGW / bin" en la "variable de entorno PATH".
Las variables "System Properties -> Advanced -> Environment" y allí actualizan la variable "PATH".
3) Luego verifica la variable de entorno PATH mediante el siguiente comando en el "Símbolo del sistema":
echo %path%
4) Agregue un nuevo sistema de compilación al texto sublime.
Mi versión del código a continuación ("C.sublime-build").
enlace al código:
// 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 mejor manera sería simplemente usar un Makefile para su proyecto y ST3 detectará automáticamente el sistema de compilación para su proyecto. Por ejemplo. Si presiona shift + ctrl / cmd + B verá esto:
Podemos compilar el código de C en Sublime Text y podemos imprimir algunos valores o cadenas pero no aceptamos la entrada del usuario. (Hasta ahora lo sé ... estoy seguro de compilar, pero no de la salida de la entrada dada). Si está usando Windows, debe establecer las variables de entorno para el Sublime Text y el compilador GCC.
Si codifica el lenguaje C o C ++. Creo que tenemos suerte porque podríamos usar un archivo para ingresar. Es muy conveniente y claro. A menudo hago eso. Este es un argumento para implementarlo:
{
freopen("inputfile", "r", stdin);
}
Tenga en cuenta que el archivo de entrada debe ubicarse en el mismo directorio con el archivo de código fuente, r significa "leer".
intente escribir un script de shell llamado run.sh en su proyecto foler
#!/bin/bash
./YOUR_EXECUTIVE_FILE
...AND OTHER THING
y crea un Build System
de compilación para compilarlo y ejecutarlo:
{
"shell_cmd": "make all && ./run.sh"
}
no te olvides de $chmod +x run.sh
Haz una cosa y hazla bien:)