http://wikitronica.labc.usb.ve/index.php?title=Compilar_archivos_de_c_desde_el_terminal_(unix)&feed=atom&action=historyCompilar archivos de c desde el terminal (unix) - Historial de revisiones2024-03-28T15:33:39ZHistorial de revisiones para esta página en el wikiMediaWiki 1.26.3http://wikitronica.labc.usb.ve/index.php?title=Compilar_archivos_de_c_desde_el_terminal_(unix)&diff=3086&oldid=prevRacuna en 16:58 31 ene 20132013-01-31T16:58:04Z<p></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;' lang='es'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">← Revisión anterior</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Revisión del 16:58 31 ene 2013</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l65" >Línea 65:</td>
<td colspan="2" class="diff-lineno">Línea 65:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>[[Categoría: EC3731 - Arquitectura del Computador 2]]</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>[[Categoría: EC3731 - Arquitectura del Computador 2]]</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">[[Categoría: CI2125 - Computación 1]]</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">[[Categoría: CI2126- Computación 2]]</ins></div></td></tr>
</table>Racunahttp://wikitronica.labc.usb.ve/index.php?title=Compilar_archivos_de_c_desde_el_terminal_(unix)&diff=3085&oldid=prevRacuna en 16:48 31 ene 20132013-01-31T16:48:31Z<p></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;' lang='es'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">← Revisión anterior</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Revisión del 16:48 31 ene 2013</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l63" >Línea 63:</td>
<td colspan="2" class="diff-lineno">Línea 63:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>./nombre_del_ejecutable</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>./nombre_del_ejecutable</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">[[Categoría: EC3731 - Arquitectura del Computador 2]]</ins></div></td></tr>
</table>Racunahttp://wikitronica.labc.usb.ve/index.php?title=Compilar_archivos_de_c_desde_el_terminal_(unix)&diff=3084&oldid=prevRacuna en 16:42 31 ene 20132013-01-31T16:42:30Z<p></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;' lang='es'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">← Revisión anterior</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Revisión del 16:42 31 ene 2013</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l1" >Línea 1:</td>
<td colspan="2" class="diff-lineno">Línea 1:</td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del class="diffchange diffchange-inline">Esta wiki </del>explica como compilar desde el terminal en sistemas operativos con base en unix empleando gcc.</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">Este artículo </ins>explica como compilar desde el terminal en sistemas operativos con base en unix empleando gcc.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>= GNU Compiler Collection =</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>= GNU Compiler Collection =</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Usualmente referido como '''gcc''', es un paquete que permite compilar y crear un archivo ejecutable a partir del código fuente.</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Usualmente referido como '''gcc''', es un paquete que permite compilar y crear un archivo ejecutable a partir del código fuente.</div></td></tr>
</table>Racunahttp://wikitronica.labc.usb.ve/index.php?title=Compilar_archivos_de_c_desde_el_terminal_(unix)&diff=2153&oldid=prevJOB 3:14: Página creada con «Esta wiki explica como compilar desde el terminal en sistemas operativos con base en unix empleando gcc. = GNU Compiler Collection = Usualmente referido como '''gcc''', es ...»2012-11-27T16:26:21Z<p>Página creada con «Esta wiki explica como compilar desde el terminal en sistemas operativos con base en unix empleando gcc. = GNU Compiler Collection = Usualmente referido como '''gcc''', es ...»</p>
<p><b>Página nueva</b></p><div>Esta wiki explica como compilar desde el terminal en sistemas operativos con base en unix empleando gcc.<br />
= GNU Compiler Collection =<br />
Usualmente referido como '''gcc''', es un paquete que permite compilar y crear un archivo ejecutable a partir del código fuente.<br />
<br />
== Instalación ==<br />
La libreria y el compilador usualmente se encuantra instalado junto al sistema operativo de fábrica. En Linux se encuentra en /usr/bin/gcc mientras que en MAC se debería encontrar en /Developer/usr/bin/gcc.<br />
<br />
Para instalar los archivos, de no poseerlos, se debe escribir del terminal '''sudo apt-get install gcc''' donde sudo le pide al sistema permisologías de root o root user. De dicha forma, es necesario introducir la clave de administrador. De tener permisologías de root (ya sea escribiendo '''sudo -s''') o conectandose desde super user (en MAC habilitado desde single user o con el disco de instalación), no es necesario escribir el prefijo y sólo es necesario introducir apt-get install gcc.<br />
<br />
Tras correr este comando, el sistema operativo descargará de internet el paquete gcc y lo introducirá en la carpeta correspondiente. El usuario sin embargo podría especificar la ruta de destino para colocar los archivos en otro lugar.<br />
<br />
= Compilando un archivo desde el terminal =<br />
== Navegando hasta la carpeta donde se encuentra o se quiere crear el archivo a compilar==<br />
<br />
Primero que todo se debe abrir el terminal y posteriormente navegar hacia la carpeta donde se encuentra el archivo que deseamos compilar ya que de lo contrario es necesario introducir la ruta de acceso para especificar donde se encuentra el arhivo durante cada una de las líneas del proceso de compilación que se explicará más adelante.<br />
<br />
Para navegar hacia una carpeta deseada en cualquier sistema UNIX se utilizan los mismos comandos:<br />
<br />
* pwd: es usado para obtener el '''present working directory''' es decir la carpeta actual en la que encuentra el usuario.<br />
<br />
* ls: muestra el contenido de la carpeta actual.<br />
<br />
* cd: permite desplazarse dentro de las carpeta. '''cd [carpeta/carpeta]''' llevará a '''carpeta/carpeta''' dentro del folder actual. De no existir dará error.<br />
<br />
* cd..: permite subir a la carpeta que contiene al folder actual.<br />
<br />
* mkdir: permite crear una carpeta en el folder actual.<br />
<br />
* cp: usado para copiar carpetas o archivos. Requiere path de arhivo a copiar, el lugar donde será copiado y el nombre de la copia.<br />
<br />
* mv: similar a cp, mueve un archivo o carpeta eliminando el origial (similar a ctrl + x en Windows).<br />
<br />
* rm: borra un archivo o carpeta (con todo su contenido).<br />
<br />
De tener dudas se recomienda usar la función '''man''' (puede no existir en el sistema y debe ser insalada usando apt-get) para mostrar el manual con toda la información referente a las funciones de sistema operativo o incluso de las librerias de c. Se debe usar escribiendo '''man [insertar_funcion_aqui]'''.<br />
<br />
== Crear o modificar el archivo a compilar ==<br />
Para crear el documento en c que debe ser compilado se puede usar un editor de texto recordando guardar el archivo de forma correcta (extensión .c, es decir ejemplo.c, en ASCII). Para hacerlo desde el terminal (por conveniencia o necesidad al no tener editores de texto en sistemas operativos como Free BSD) se puede usar tanto '''nano''' o '''pico''' usados para modificar archivos de texto desde el terminal. Se '''recomienda altamente''' para los principiantes usar nano por su facilidad y debido a que existe tanto en sistemas Linux como en Mac.<br />
<br />
Se puede usar '''nano [introducir_nombre_aqui]''' para modificar el archivo correspondiente o se puede crear uno usando '''nano [nombre_del_archivo_a_crear]'''. Independientemente luego de escribir o modificar el archivo se debe salir usando ^X (ctrl+x) y aceptar guardar el archivo y el nombre. Recordar que para compilar un archivo de c se debe escribir el documento con extensión '''.c'''.<br />
<br />
== Compilar el archivo ==<br />
Una vez navegado hasta la carpeta donde esta el archivo a compilar (recordar que en esta misma carpeta se deben encontrar los archivos .h custom creados por el usuario si el path no se encuentra especificado en el documento .c) se procede a obtener el objeto '''.o''' y luego el ejecutable. Se realiza de la siguiente manera:<br />
<br />
gcc -c archivo.c<br />
<br />
gcc archivo.o -o nombre_del_ejecutable<br />
<br />
./nombre_del_ejecutable<br />
<br />
La primera linea compila el archivo y crea el abjeto, la segunda crea el ejecutable y la tercera ejecuta el programa de la raiz ./ de la carpeta actual, que de hecho es donde se encuentra el archivo ejecutable.<br />
<br />
<br />
==Compilando archivos usando la libreria de hilos==<br />
<br />
Primero que todo se debe incluir la liberia '''<thread.h>''' en el archivo en c aparte de las librerias comunes.<br />
<br />
Para compilar el archivo desde la terminal se debe incluir como sufijo a la instrucción de gcc el termino '''-lpthread'''. De dicha forma tenemos:<br />
<br />
gcc -c archivo.c -lpthread<br />
<br />
gcc archivo.o -o nombre_del_ejecutable -lpthread<br />
<br />
./nombre_del_ejecutable</div>JOB 3:14