Guia_Intro_a_herramientas_de_desarrollo_en_Linux
Páginas: 24 (5854 palabras)
Publicado: 20 de octubre de 2013
Introducción a las herramientas de desarrollo en Linux
Guía de laboratorio
Objetivos:
Establecer el método que emplearemos para desarrollar una aplicación empleando el sistema operativo Linux y sus herramientas de desarrollo básicas.
Comprende los conceptos de proyecto, ejecutable y bibliotecas en este contexto.
Creando programas
Como en cualquier otro entorno, crear un programabajo sistemas UNIX/Linux requiere una serie de pasos que probablemente sean conocidos:
1. Crear y editar del programa o código fuente sobre un archivo de texto, empleando para ello una herramienta denominada editor. En caso de programar en lenguaje C, lo usual es que dicho archivo tenga extensión “.c”.
2. Compilar del código fuente mediante otra herramienta denominada compilador, generándoseun archivo objeto, que en UNIX/Linux suele tener extensión “.o”. A veces, en lugar de generarse el archivo objeto directamente se genera un archivo intermedio en ensamblador (en UNIX típicamente con extensión “.s”) que a continuación es necesario ensamblar con un ensamblador para obtener el archivo objeto. Además, en C existe una etapa previa a la compilación en la que el archivo fuente pasa porotra herramienta denominada preprocesador.
3. Enlazado del archivo objeto con otros archivos objeto necesarios, así como con las bibliotecas que sean necesarias para así obtener el archivo de programa ejecutable. Esta labor es llevada a cabo por un programa denominado enlazador.
4. Finalmente el programa puede ejecutarse tal cual o en caso de ser necesario puede ser depurado con unaherramienta denominada depurador o debugger. Si se detectan problemas, será necesario editar el programa fuente y corregir los fallos, reiniciándose el ciclo de desarrollo hasta obtener un programa sin errores.
Los pasos anteriores quedan ilustrados en el siguiente diagrama:
En un sistema Linux las herramientas clásicas encargadas de cada etapa son las siguientes:
Editor: existe granvariedad de ellos, siendo los más populares emacs y vi.
En nuestro caso se recomienda el uso uno de los siguientes:
gedit: editor gráfico con reconocimiento de sintaxis C.
kwrite: editor gráfico.
kate: otro editor gráfico.
vim: editor desde la terminal.
emacs: otro editor desde la terminal.
Preprocesador, compilador, ensamblador y enlazador: estas herramientas pueden encontrarse de formaindividual, pero en un sistema Linux típicamente encontramos la herramienta cc (realmente el compilador de C y C++ de GNU, gcc), que se encarga de llamarlas según se necesiten. En cualquier caso, y aunque por lo general no las utilizaremos de forma individual, las herramientas son:
Preprocesador: cpp
Compilador: gcc
Ensamblador: as
Enlazador: ld
Depurador: el depurador por excelencia en elentorno Linux (y en UNIX en general) es gdb, aunque también está ddd que es un depurador con interfaz gráfica que usa gdb como base de funcionamiento.
Existen otras utilidades que en algún momento podrían sernos útiles:
strace: traza las llamadas al sistema invocadas por un programa durante su ejecución.
ltrace: traza las funciones de biblioteca invocadas por un programa durante su ejecución.objdump: extrae información de un fichero objeto en formato ELF.
readelf: extrae información de un fichero objeto en formato ELF.
size: informa sobre las necesidades de memoria anotadas en un fichero ejecutable.
cflow: informa sobre las relaciones entre funciones deducidas de los ficheros fuente de un programa.
cdecl: ayuda a interpretar el significado de una declaración en lenguaje C.
pmap:muestra la ocupación de memoria de un programa en ejecución.
¿Qué es un proyecto?
En programación consideramos un proyecto el conjunto de ficheros necesarios para producir una aplicación.
Para cada aplicación emplearemos un directorio donde se alojarán todos los ficheros relacionados con ella, que básicamente son de 6 tipos:
1. Uno o más ficheros fuente escritos en lenguaje C (con extensión...
Leer documento completo
Regístrate para leer el documento completo.