miércoles, 29 de agosto de 2007

/depurando con cygwin e ainda mais



Cygwin no me gusta, me veo obligada a usarlo, bajo Eclipse se hace mas llevadero. Algo que no entiendo porqué no venden en el CD de facultad el Cygwin con un entorno mas amigable para trabajar con el. Actualmente venden Cygwin, y un editor, hasta donde supe (EditPad).
Notepad++ como editor es otra opción interesante, admite plugins para varios lenguajes, y es open source.
Eclipse da la opción de crear automáticamente un makefile, o trabajar con uno propio, a piacere (al igual que Code::Blocks).
¿Por qué no mejor un IDE que facilite y enseñe a administrar proyectos como Eclipse?, o simplemente la comodidad de Code::Blocks, ¿por qué la incomodidad de trabajar desde consola?.
Pensé que para familiarse con el concepto de Make, makefile, ese especie de máquinas de estados con dependencias, pues bien, lo exigen como parte de la tarea y listo, ya que hay entornos que nos dan la opción de crear nuestro makefile. Pero no entiendo porqué trabajar de manera tan artesanal, que mas que aprender conlleva pérdidas de tiempo.
Aprendiendo a manejar el ddd de cygwin no aporta demasiado, hacer un make tampoco, la intención de las materias como P3 van por otro lado.

(A propósito en otro post hablaré de la última versión de Eclipse que acabo de instalar)

Paquetes mínimos de Cygwin a instalar para trabajar con C o C++: make, gdb, ddd, gcc, g++ y automáticamente instala el entorno gráfico X, necesario para para depurar con ddd. Lo recomiendo, porque gdb es bastante críptico. Esto último para los que no usen Eclipse o Code::Blocks, ya que estos entornos facilitan mucho más el desarrollo.

Nota: Para los que ejecuten Cygwin en modo de consola, si desean activar el debugger (ddd), deben ejecutar el comando startx previamente (carga el entorno gráfico necesario para ddd), luego ejecutan en la línea de comandos, ddd.
De lo contrario, si no tienen el entorno gráfico, les saldrá un mensaje de error: "Error can't load display"

Hablando de Cygwin, si no entraron a los links, les comento que es una colección de herramientas que proporcionan un comportamiento similar a los sistemas Unix bajo Windows. Básicamente consiste en dos grupos de herramientas:
cygwin1.dll biblioteca encargada de crear una capa que provee la funcionalidad de las API de Linux, y un conjunto de comandos propios de Linux para ser ejecutados bajo Windows.

Algunos paquetes son de dominio público, los que están desarrollados por Cygnus se encuentran bajo la licencia GNU (GPL), no hay que pagar para usarlos, pero si desarrollamos aplicaciones con fines comerciales, debemos pagar por la licencia, ya que es una biblioteca propietaria de Cygwin.

Ese es uno de los motivos por los cuales pienso migrar a MinGW, su licencia es mas permisiva. En cuanto a las dificultades para migrar a Linux con ese compilador, no me preocupan, la experiencia me dice que el de Cygwin no es totalmente fiel.
Cuando para facultad nos encontrábamos desarrollando una tarea bajo Fedora, muchas veces para adelantar usabamos máquinas con Windows y Cygwin, y comprobamos que la portabilidad no era 100% segura, debimos hacer pequeñas modificaciones para que compilara bajo Linux.







3 comentarios:

Anónimo dijo...

Hola Rog, con respecto a tu comentario quería preguntarte si sabes alguna manera sencilla que me permita migrar una aplicación que fué desarrollada en Cygwin hacia otro lenguaje tal como C# o Java.

rog dijo...

Hola Fabian, no conozco una manera sencilla. Escribí este post para embeber C++ en un proyecto .NET (en C#)
http://tallerdeldisparate.blogspot.com/2008/08/embeber-dll-em-proyecto-net.html
Espero te oriente, saludos

rog dijo...

hola, disculpa que responda tarde.
La verdad estoy alejada de cygwin, varios entornos funcionan con MinGW y es lo que estoy usando, ya también por un tema de licencias.
(http://tallerdeldisparate.blogspot.com/2007/08/depurando-con-cygwin-e-ainda-mais.html)

Encontré un entorno similar a code::block para C++ que también viene con MinGW por defecto, y opensource CodeLite

http://codelite.org/