Diferencias entre las revisiones 7 y 8
Versión 7 con fecha 2007-12-11 15:06:36
Tamaño: 2429
Editor: RodrigoMoya
Comentario:
Versión 8 con fecha 2007-12-11 15:19:40
Tamaño: 4023
Editor: RodrigoMoya
Comentario:
Los textos eliminados se marcan así. Los textos añadidos se marcan así.
Línea 14: Línea 14:
gcc -o ejecutable $opciones fichero_fuente1...fichero_fuenteN gcc -o fichero_de_salida $opciones fichero_fuente1...fichero_fuenteN
Línea 16: Línea 16:
 * La opción -o indica el nombre del ejecutable 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''.  * 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''.
Línea 19: Línea 19:
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.

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.

Compilación de programas en 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)