Diferencias entre las revisiones 8 y 9
Versión 8 con fecha 2007-12-11 15:19:40
Tamaño: 4023
Editor: RodrigoMoya
Comentario:
Versión 9 con fecha 2007-12-11 15:32:58
Tamaño: 4860
Editor: RodrigoMoya
Comentario:
Los textos eliminados se marcan así. Los textos añadidos se marcan así.
Línea 22: Línea 22:
Así, este hecho hace que se pueda compilar de dos formas. Así, en primer lugar, se puede hacer todo de una pasada, es decir, tal y como se muestra en la línea de comandos anterior, con una sola invocación a gcc se compilan los ficheros fuentes a código objeto, y se enlazan todos ellos, junto con las librerías, para obtener el ejecutable. Este método es muy útil para aplicaciones con pocos (muy pocos, tales como uno o dos ficheros pequeños) ficheros. Sin embargo, para proyectos con más ficheros, el andar compilando todos los ficheros fuente cada vez que se haga un pequeño cambio en uno de ellos es, como es de suponer, una pérdida de ciclos de CPU, ya que, la mayor parte de las veces, sólo habrá cambios en uno o dos ficheros fuente, por lo que no sería necesario volver a compilarlos todos a código objeto.
=== Compilación de programas en C ===
Así, este hecho hace que se pueda compilar de dos formas. Así, en primer lugar, se puede hacer todo de una pasada, es decir, tal y como se muestra en la línea de comandos anterior, con una sola invocación a gcc se compilan los ficheros fuentes a código objeto, y se enlazan todos ellos, junto con las librerías, para obtener el ejecutable. Este método es muy útil para aplicaciones con pocos (muy pocos, tales como uno o dos ficheros pequeños) ficheros. Sin embargo, para proyectos con más ficheros, el andar compilando todos los ficheros fuente cada vez que se haga un pequeño cambio en uno de ellos es, como es de suponer, una pérdida de ciclos de CPU, ya que, la mayor parte de las veces, sólo habrá cambios en uno o dos ficheros fuente, por lo que no sería necesario volver a compilarlos todos a código objeto. Para ello, se usa la siguiente sintaxis:
{{{
gcc -o fichero_objeto.o -c $opciones fichero_fuente.c
}}}
Lo que cambia con respecto a la sintaxis mostrada anteriormente es, aparte de que se obtiene un fichero objeto (''fichero_objeto.o'') en vez de un ejecutable, la opción ''-c'', que indica a gcc que sólo debe realizar el primer paso del proceso, es decir, la compilación del fichero fuente en código objeto. Ejecutando este mismo comando para cada uno de los ficheros fuente del proyecto, se obtiene un fichero objeto por cada fichero fuente. Así, una vez obtenidos todos los ficheros objeto, se usa la siguiente sintaxis:
{{{
gcc -o ejecutable $opciones fichero_objeto1.o fichero_objeto2.o ....
}}}
Que, en vez de usar los ficheros fuente, indica a gcc los ficheros objeto obtenidos en el paso anterior a usar
.
=== Opciones específicas para el lenguaje C ===

Herramientas de desarrollo

TableOfContents()

Esta sección describe las herramientas disponibles para el desarrollo de aplicaciones GNOME.

Línea de comandos: gcc

[http://gcc.gnu.org/ gcc] es el compilador desarrollado por el proyecto [http://www.gnu.org GNU], que permite la compilación de código fuente en diferentes lenguajes de programación para diversas plataformas de hardware. Es por ello por lo que se le conoce más bien como colección de compiladores, ya que incluye soporte para C, C++, Objective C, Fortran, Java y Ada, o lo que es lo mismo, para los lenguajes compilados más utilizados. Además, incluye librerías base para dichos lenguajes, tales como glibc para C, libstdc++ para C++, etc.

Instalación de gcc

Todas las distribuciones de GNU/Linux incluyen versiones empaquetadas y listas para ser utilizadas de gcc, por lo que la forma más sencilla de instalarlo es, como suele ser habitual, mediante el gestor de paquetes de la distribución que se esté usando. Normalmente los paquetes suelen estar separados por lenguajes, de forma que si sólo se instala el paquete gcc, sólo se tendrá soporte para la compilación de programas escritos en lenguaje C. Por ello, si se planea el uso de otros lenguajes, es probable que sea necesaria la instalación de paquetes adicionales para obtener soporte para dichos lenguajes de programación. En todo caso, lo mejor es consultar la documentación específica de cada distribución.

Uso básico

El uso básico de gcc sería el siguiente:

gcc -o fichero_de_salida $opciones fichero_fuente1...fichero_fuenteN
  • La opción -o indica el nombre del fichero resultante de la compilación. Es importante usar esta opción siempre, ya que si no se usa, el ejecutable será creado con el nombre a.out.

  • $opciones especifica la lista de opciones a usar para la compilación, en donde se especificarán, por ejemplo, los directorios en los que buscar los ficheros de cabecera o las librerías, o cosas más complejas como la plataforma para la que el ejecutable debe ser compilado.

  • El resto contendría la lista de ficheros fuente a compilar.

En este punto hay que comentar que existen dos maneras, en casi todos los lenguajes soportados por gcc, de obtener la compilación de un ejecutable. Esto se debe a que, en lenguajes tales como C o C++, el proceso de compilación propiamente dicho se divide en dos:

  • Primero, se compilan los ficheros fuente (.c o .cpp/.cc/.cxx/.C) en código objeto, que no es más que una representación binaria del código fuente, totalmente independiente de la plataforma.
  • Seguidamente, los ficheros objeto (con la extensión .o) se enlazan, junto con las librerías que use el programa, en un fichero ejecutable, que ya contiene todas las instrucciones máquina necesarias para la ejecución del programa en la plataforma para la que se realiza la compilación.

Así, este hecho hace que se pueda compilar de dos formas. Así, en primer lugar, se puede hacer todo de una pasada, es decir, tal y como se muestra en la línea de comandos anterior, con una sola invocación a gcc se compilan los ficheros fuentes a código objeto, y se enlazan todos ellos, junto con las librerías, para obtener el ejecutable. Este método es muy útil para aplicaciones con pocos (muy pocos, tales como uno o dos ficheros pequeños) ficheros. Sin embargo, para proyectos con más ficheros, el andar compilando todos los ficheros fuente cada vez que se haga un pequeño cambio en uno de ellos es, como es de suponer, una pérdida de ciclos de CPU, ya que, la mayor parte de las veces, sólo habrá cambios en uno o dos ficheros fuente, por lo que no sería necesario volver a compilarlos todos a código objeto. Para ello, se usa la siguiente sintaxis:

gcc -o fichero_objeto.o -c $opciones fichero_fuente.c

Lo que cambia con respecto a la sintaxis mostrada anteriormente es, aparte de que se obtiene un fichero objeto (fichero_objeto.o) en vez de un ejecutable, la opción -c, que indica a gcc que sólo debe realizar el primer paso del proceso, es decir, la compilación del fichero fuente en código objeto. Ejecutando este mismo comando para cada uno de los ficheros fuente del proyecto, se obtiene un fichero objeto por cada fichero fuente. Así, una vez obtenidos todos los ficheros objeto, se usa la siguiente sintaxis:

gcc -o ejecutable $opciones fichero_objeto1.o fichero_objeto2.o ....

Que, en vez de usar los ficheros fuente, indica a gcc los ficheros objeto obtenidos en el paso anterior a usar.

Opciones específicas para el lenguaje C

Uso de Anjuta como IDE

Creación de un proyecto

Compilación y construcción de paquetes

Glade: desarrollo de interfaces gráficas

DevHelp: guía de referencia

Documentacion/Desarrollo/HerramientasDeDesarrollo (última edición 2009-08-28 23:23:40 efectuada por DomingoGonzalez)