Contenido del documento
- Objetivo
- Introducción
- Infraestructura
- Cygwin
- Eclipse
- Conclusión
Objetivo:
Este documento tiene como objetivo presentar una alternativa para armar un entorno de desarrollo sobre Windows para aplicaciones c/c++, que se implementarán en sistemas unix o linux.
Introducción:
Si vamos a desarrollar programas para que corran en un sistema unix, o basado en unix, lo ideal es que desarrollemos directamente sobre ese sistema. Si tiene un entorno gráfico podemos usar el eclipse, si sólo tenemos consola, siempre tenemos la alternativa del vi para generar el código fuente y luego compilar usando makefiles.
Pero, ¿qué pasa si sólo contamos con plataformas windows para desarrollar y además no podemos conseguir un imagen del sistema unix para montar una máquina virtual, o si el cliente nos brinda acceso a su entorno de desarrollo vía SVN, pero la conexión es tediosamente lenta cómo para desarrollar?
Para solucionar este problema, una alternativa es usar el IDE eclipse para windows, con el que podemos generar el código, compilar y depurar (o "debbugear" para los amigos). También podemos probarlo directamente sobre el cygwin copiando los fuentes, compilándolos por línea de comando y realizando los casos de prueba en la consola.
Para la etapa de aseguramiento de la calidad (testing & bug fixing): Es altamente recomendable que podamos hacerlo accediendo al entorno del desarrollo del cliente.Infraestructura:
Partimos del supuesto que sólo tenemos computadoras con Windows y que vamos a desarrollar sobre ansi c o c++.
Necesitaremos instalarnos cygwin y eclipse CDT para desarrollar sobre ansi C/C++.[PC o Notebook]/Windows - Eclipse - Cygwin - SVN
- VNC - Conexión con el cliente
- VNC - Conexión con el cliente
- Cygwin:
¿Qué es Cygwin?
En su página web: http://www.cygwin.com/ nos indica lo que no es cygwin:
- No es una manera de correr aplicaciones nativas de linux sobre windows
- No es una manera de correr mágicamente aplicaciones de windows con funcionalidades de unix.
El hecho que las aplicaciones compilen y se ejecuten con éxito los casos de prueba en esta plataforma, no garantiza el éxito en el entorno unix/linux del cliente, pero sí aumenta de las probabilidades de que así sea.¿Cómo lo usaremos?
Lo vamos a usar para que el eclipse compile sobre windows usando el gcc/g++, que es el compilador nativo de los sistemas unix.
Esto es muy útil si estamos analizando un shell script, por ejemplo.
También es muy útil para probar comandos de unix que no conocemos o que son complejos, sobre la consola que nos provee el cygwin.¿Cómo lo instalamos?
- Nos bajamos el instalador desde su página: http://www.cygwin.com/setup.exe
- Lo ejecutamos
- Seleccionamos "install from internet"
- Seleccionamos un repositorio
- Seleccionamos los paquetes para gcc/g++ y el make
¿Por qué CygWin?
- Es libre
- Es de fácil instalación
- Consume pocos recursos
- Eclipse lo puede utilizar para compilar con el gcc/g++ sobre windows
Eclipse:
¿Qué es Eclipse?
Es un IDE (integrated development environment).
En un principio, utilizado para desarrollar programas java, pero hoy por hoy, tenemos muchos plugin para desarrollar en diferentes lenguajes. En nuestro caso para desarrollar en c/c++.¿Cómo lo usaremos?
Lo usaremos para el desarrollo del código, compilación, depuración, testeos y para realizar el control de versiones.¿Cómo lo instalamos?
- Nos bajamos el instalador desde su página: http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/ganymede/SR2/eclipse-cpp-ganymede-SR2-win32.zip .
- Lo descomprimimos
- Agregamos a la variable de entorno PATH, el path de cygwin bin, por ejemplo: "C:\cygwin\bin" .
- Podemos generar un archivo de proceso por lotes (eclipse.bat) que contenga:
PATH=c:\Program Files\Java\jdk1.6.0_03\bin;%PATH%
eclipse.exe
Cambiar "c:\Program Files\Java\jdk1.6.0_03\bin" por path que se adecue a su instalación de java.
Con esto el eclipse arrancará cuando ejecutemos eclipse.bat
¿Por qué Eclipse?
- Es libre
- Es de fácil instalación
- Es un editor de código fuente potente que nos permite manejar múltiples documentos a la vez. Es potente porque tenemos la posibilidad de agregarle funcionalidades mediante plugins. Dentro de las cuales tenemos: resaltación de sintaxis, incorporación de código repetitivo en las clases, como son los "getters" y "setters", refactorización de código y compilación, entre muchas otras.
- Permite trabajar con diferentes lenguajes de programación.
- Tiene diferentes perpectivas para ver el editor.
- Permite "debuggear" de manera visual.
- Se pueden incluir funcionalidades para testear.
- Se puede agregar funcionalidad de SVN.
- Se puede actualizar.
- Se puede conseguir mucha documentación en internet.
¿Por qué no el Vi?
El Vi puede ser potente cuando uno se aprende todos los comandos. Además debemos destacar que el Vi está en cualquier consola unix.
Cygwin probablemente tenga un paquete para Vi, pero simplemente no lo busqué porque considero que es mucho más cómodo tener una herramienta visual con un interfaz amigable, sobre todo si se trabaja con múltiples documentos.
Por lo tanto, creo que debemos usar el Vi sólo cuando no tengamos otra opción. Aprovechemos los avances tecnológicos que nos simplifican la vida.
Conclusión:
Si necesitamos montar un entorno de desarrollo para unix/linux y contamos con máquinas con sistema windows solamente, una alternativa rápida, liviana, potente y gratuita es trabajar con Eclipse + Cygwin para desarrollar nuestras aplicaciones.