Desarrollo de software en Linux

Introduccion:

Algo realmente sorprendente de Linux es la cantidad de herramientas que existe para desarrollar software.
Generalmente los pasos para generar un ejecutable (no interpretado) son los siguientes:

codigo fuente --> Compilador --> objetos --> Linker --> ejecutable

El codigo fuente es el archivo de texto (o varios) que escribis segun el lenguaje que elijas.
El Compilador convierte ese codigo fuente en archivos "objeto", ya en formato binario segun la plataforma seleccionada.
Y el Linker es el encargado de unir esos objetos, librerias, stub, etc. para generar un archivo ejecutable.

 

IDEs:

 

GNU Toolchain:

Se le dice "toolchain" a la cadena de herramientas necesarias para desarrollar software.
Con otras palabras, si queres fabricar una silla, la toolchain deberia ser madera, clavos y un martillo.

En el mundo GNU existen muchos programas y librerias.
Obviamente cada programador tiene sus preferencias, pero basicamente se utiliza:

  • GCC
  • GNU Binutils
  • GNU make
  • GNU build system

 

 GCC - the GNU Compiler Collection:

http://gcc.gnu.org/
Es un paquete con compiladores para lenguaje C, C++, Objective-C, Fortran, Java, Ada y Go.
Ademas ya incluye las librerias standard de c, c++, entre otras.

 

GNU Binutils:

http://www.gnu.org/software/binutils/
Es una coleccion de herramientas para la manipulacion de "objetos" que componen un ejecutable.
Son varias pero las dos mas importantes son:

  • as - el assembler GNU
  • ld - el linker GNU

 

GNU build system:

Estas utilidades no son necesarias si tu proyecto es chico.
Pero si tenes un proyecto largo y con muchos archivos, lo que te conviene es usar estas utilidades para crear un archivo de configuracion que automatice la creacion de tu programa con make.

 

Librerias:

Una libreria es un contenedor de funciones, classes y/o metodos.
Es similar a un ejecutable, ya que esta formado por objetos compilados y linkeados.
Existen dos tipos de librerias:

  • static (estaticas). Terminan en .a y vendrian a ser como los .lib en Visual C++
  • shared (compartidas). Terminan en .so son similares a los .DLL de Windows y tambien podes linkearlas en tiempo de compilacion o cargarlas en tiempo de ejecucion.

En todos los casos estos archivos empiezan con "lib", por ejemplo: libprueba.so

 

Comentarios