{"id":1374,"date":"2017-12-09T19:11:41","date_gmt":"2017-12-10T01:11:41","guid":{"rendered":"http:\/\/naps.com.mx\/blog\/?p=1374"},"modified":"2017-12-19T23:18:02","modified_gmt":"2017-12-20T05:18:02","slug":"compilar-y-ejecutar-c-desde-sublime-text-mac-os-x","status":"publish","type":"post","link":"https:\/\/naps.com.mx\/blog\/compilar-y-ejecutar-c-desde-sublime-text-mac-os-x\/","title":{"rendered":"Compilar y Ejecutar C desde Sublime Text en Mac OS X"},"content":{"rendered":"<p><strong><i>Compilar y Ejecutar C desde Sublime Text nos permite probar f\u00e1cil y r\u00e1pidamente nuestros programas. A continuaci\u00f3n veremos los pasos necesarios para esta tarea.<\/i><\/strong><\/p>\n<p><!--more--><\/p>\n<p>Veremos:<\/p>\n<ul>\n<li><a href=\"#instalar1\">C\u00f3mo instalar C en Mac OS X usando MacPorts.<\/a><\/li>\n<li><a href=\"#instalar2\">C\u00f3mo compilar y ejecutar C desde consola en Mac OS X<\/a><\/li>\n<li><a href=\"#instalar3\">C\u00f3mo compilar y ejecutar C desde Sublime Text en Mac OS X<\/a><\/li>\n<\/ul>\n<h2 id=\"instalar1\">C\u00f3mo instalar C en Mac OSX usando MacPorts<\/h2>\n<h3>Qu\u00e9 es MacPorts<\/h3>\n<p><b>MacPorts<\/b> nos permite instalar software <i>opensource<\/i> en un sistema Mac OS X. Utilizando MacPorts podemos instalar software introduciendo el comando port install nombre_del_paquete en una terminal. MacPorts descarga, compila e instala el software requerido junto con las dependencias necesarias.<\/p>\n<h3>MacPorts vs Homebrew<\/h3>\n<p><b>MacPorts<\/b> tiene ventajas sobre aplicaciones similares como Homebrew:<\/p>\n<ul>\n<li>Tiene muchos m\u00e1s paquetes (aplicaciones).<\/li>\n<li>MacPorts es una aplicaci\u00f3n nativa, mientras que Homebrew necesita Ruby.<\/li>\n<li>MacPorts es muy estable.<\/li>\n<\/ul>\n<h3>Instalar MacPorts<\/h3>\n<ul>\n<li>Ve al sitio web de MacPorts y a su p\u00e1gina de instalaci\u00f3n:<br \/>\n<a href=\"https:\/\/www.macports.org\/install.php\" target=\"_blank\" rel=\"noopener\">https:\/\/www.macports.org\/install.php<\/a><\/li>\n<li>Busca la versi\u00f3n de MacOS X que est\u00e9s utilizando, descarga la imagen DMG.<\/li>\n<li>Instala el DMG como ya sabes hacerlo.<\/li>\n<li>Una vez instalado abre una ventana de Terminal<br \/>\nApplication &gt; Utilities &gt; Terminal<\/li>\n<\/ul>\n<h4>\u00bfC\u00f3mo saber qu\u00e9 versi\u00f3n de port estoy utilizando?<\/h4>\n<p>Ejecuta el comando<\/p>\n<pre class=\"lang:default decode:true \">port version<\/pre>\n<p>(Si te arroja \u201ccommando not found\u201d aseg\u00farate de estar usando una nueva ventana de Terminal).<\/p>\n<h4>C\u00f3mo asegurarte de estar utilizando la \u00faltima versi\u00f3n de port<\/h4>\n<p>Ejecuta el comando<\/p>\n<pre class=\"lang:default decode:true \">sudo port selfupdate<\/pre>\n<h4>C\u00f3mo instalar GCC en Mac OS X usando MacPorts<\/h4>\n<p>El siguiente comando instala gcc:<\/p>\n<pre class=\"lang:default decode:true \">sudo port install gcc47<\/pre>\n<p>Una vez que la aplicaci\u00f3n est\u00e9 instalada:<\/p>\n<p>Podemos ver qu\u00e9 versi\u00f3n de <b>gcc<\/b> est\u00e1 instalada en nuestro sistema<\/p>\n<p>Ejecuta el comando:<\/p>\n<pre class=\"lang:default decode:true \">port select \u2014list gcc<\/pre>\n<p>En mi caso devuelve:<\/p>\n<pre class=\"lang:sh decode:true \">Available versions for gcc:\r\nmp-gcc47\r\nnone (active)<\/pre>\n<p>&nbsp;<\/p>\n<p>De seguro deseamos acceder a <b>gcc<\/b> desde cualquier carpeta, para tener esta opci\u00f3n utiliza el comando siguiente:<\/p>\n<pre class=\"lang:default decode:true\">sudo port select -- set gcc mp-gcc47<\/pre>\n<p>Nos devuelve:<\/p>\n<pre class=\"lang:sh decode:true \">Selecting 'mp-gcc47' for 'gcc' succeeded. 'mp-gcc47' is now active.<\/pre>\n<p>&nbsp;<\/p>\n<p>Ahora podemos utilizar el comando <b>gcc<\/b> desde cualquier punto.<\/p>\n<h4>\u00bfC\u00f3mo ver la versi\u00f3n del compilador que estamos usando?<\/h4>\n<p>Ejecuta el comando:<\/p>\n<pre class=\"lang:default decode:true\">gcc --version<\/pre>\n<p>&nbsp;<\/p>\n<h2 id=\"instalar2\">C\u00f3mo instalar y ejecutar C desde consola en Mac OS X<\/h2>\n<h3>Compilar programas en C desde consola<\/h3>\n<p>Para compilar nuestros programas utilizamos el comando<\/p>\n<pre class=\"lang:default decode:true \">gcc programa.c<\/pre>\n<p>Podr\u00e1s observar que en el directorio actual aparece un archivo llamado a.out. Si no especificamos el nombre del programa a crear, por default el nombre ser\u00e1 a.out. Podemos ejecutar este archivo como cualquier otro programa, pero como est\u00e1 ubidado en una carpeta de usuario y no en donde generalmente est\u00e1n los programas debemos utilizar el prefijo \u201c.\/\u201c<\/p>\n<pre class=\"lang:default decode:true \">.\/a.out<\/pre>\n<p>Si deseamos escoger el nombre del archivo ejecutable que produce el compilador debemos utilizar la opci\u00f3n <strong>-o<\/strong>, seguida del nombre del archivo a crear:<\/p>\n<pre class=\"lang:default decode:true \">gcc -o programa programa.c<\/pre>\n<p>Este comando produce el archivo programa que ya es ejecutable.<\/p>\n<h3>Medir el tiempo que tarda un programa en ejecutarse<\/h3>\n<p>Para medir el tiempo que tarda en ejecutarse un programa podemos utilizar el comando time<\/p>\n<pre class=\"lang:default decode:true \">time .\/programa<\/pre>\n<p>&nbsp;<\/p>\n<h2 id=\"instalar3\">C\u00f3mo compilar y ejecutar C desde Sublime Text en Mac OS X<\/h2>\n<p>Si deseas compilar y ejecutar C desde Sublime Text, es posible hacerlo.<\/p>\n<p>Abre un nuevo archivo y escribe el siguiente c\u00f3digo:<\/p>\n<p>&nbsp;<\/p>\n<pre class=\"lang:default decode:true \">{\r\n\"cmd\" : [\"\/ruta\/hacia\/gcc\", \"$file_name\", \"-o\", \"${file_base_name}\", \"-lgsl\", \"-lgslcblas\", \"-lm\" , \"-Wall\"],\r\n\"selector\" : \"source.c\",\r\n\"shell\":false,\r\n\"working_dir\" : \"$file_path\",\r\n\r\n\"variants\":\r\n[\r\n{\r\n\"name\": \"Run\",\r\n\"cmd\": [\"bash\", \"-c\", \"\/ruta\/hacia\/gcc '${file}' -Wall -o '${file_path}\/${file_base_name}' &amp;&amp; '${file_path}\/${file_base_name}'\"]\r\n}\r\n]\r\n}<\/pre>\n<p>&nbsp;<\/p>\n<p>Al c\u00f3digo anterior solo debes cambiarle la \/ruta\/hacia\/gcc. Por ejemplo, en mi caso es la siguiente:<br \/>\n\/opt\/local\/bin\/gcc<\/p>\n<p>Tambien puedes agregar las librer\u00edas que necesitas, en el ejemplo son: -lgsl, -lm, etc.<br \/>\nLas variables como $file_name son del sistema y no deben ser cambiadas.<\/p>\n<p>Ahora debes guardar ese c\u00f3digo con el nombre C.sublime-build en la siguiente ruta:<\/p>\n<p>~\/Library\/Application Support\/Sublime Text 2\/Packages\/User\/C.sublime-build<\/p>\n<p>La carpeta Library est\u00e1 en tu carpeta de documentos, si no puedes verla es porque est\u00e1 oculta. Para visualizar las carpetas ocultas pulsa la combinaci\u00f3n cmd+shift+(tecla punto).<\/p>\n<p>Ya puedes compilar y ejecutar tus c\u00f3digos escritos en C. Basta pulsar cmd+b o cmd+shift+b<\/p>\n<div id=\"attachment_1383\" style=\"width: 2570px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2017\/12\/Compilar-y-Ejecutar-C-desde-Sublime-Text.jpeg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1383\" class=\"size-full wp-image-1383\" src=\"http:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2017\/12\/Compilar-y-Ejecutar-C-desde-Sublime-Text.jpeg\" alt=\"Compilar y Ejecutar C desde Sublime Text\" width=\"2560\" height=\"1410\" srcset=\"https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2017\/12\/Compilar-y-Ejecutar-C-desde-Sublime-Text.jpeg 2560w, https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2017\/12\/Compilar-y-Ejecutar-C-desde-Sublime-Text-300x165.jpeg 300w, https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2017\/12\/Compilar-y-Ejecutar-C-desde-Sublime-Text-768x423.jpeg 768w, https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2017\/12\/Compilar-y-Ejecutar-C-desde-Sublime-Text-1024x564.jpeg 1024w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><\/a><p id=\"caption-attachment-1383\" class=\"wp-caption-text\">La salida de consola se ve en la misma ventana de Sublime Text<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Compilar y Ejecutar C desde Sublime Text nos permite probar f\u00e1cil y r\u00e1pidamente nuestros programas. A continuaci\u00f3n veremos los pasos necesarios para esta tarea.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"amp_status":"","footnotes":""},"categories":[188,55],"tags":[131,220,172],"class_list":["post-1374","post","type-post","status-publish","format-standard","hentry","category-programacion-basica","category-programacion-y-desarrollo","tag-fundamentos-de-programacion","tag-mac-os-x","tag-sublime-text"],"_links":{"self":[{"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/posts\/1374","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/comments?post=1374"}],"version-history":[{"count":18,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/posts\/1374\/revisions"}],"predecessor-version":[{"id":1408,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/posts\/1374\/revisions\/1408"}],"wp:attachment":[{"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/media?parent=1374"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/categories?post=1374"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/tags?post=1374"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}