Ver Mensaje Individual
  #5 (permalink)  
Antiguo 14/01/2012, 14:23
Avatar de HackmanC
HackmanC
 
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Respuesta: Tengo varias dudas....nuevo en C++

Hola,

Te adelanto algo sobre cygwin mientras sam90 posiblemente me corrija.

Cita:
Iniciado por zero0097 Ver Mensaje
... Y la que me dices Hackman la buscare haber si la puedo conseguir debajo del agua xD...
Creo que está en línea, por lo menos la mayoría:
http://msdn.microsoft.com/es-es/libr...=VS.90%29.aspx

Cita:
Iniciado por zero0097 Ver Mensaje
Pero entonces sobre los compiladores no me queda muy claro... actualmente yo parctico en Codeblock en ubuntu que segun esto usa el GNU GCC Compiler....ok!...
ahora tu sam me dices que el Dev C++ trae el mingw que es el GCC pero para windows... el cygwin es lo mismo no? una version del gcc para windows?
El compilador de Linux es GCC, mingw y cygwin son para Windows, es decir, son dos librerías hechas para crear y ejecutar programas hechos para Linux en Windows. Pero en todos los casos estás usando el mismo compilador GNU GCC.

Cita:
Iniciado por zero0097 Ver Mensaje
Ahora bien, supongamos que desarrollo una aplicacion en windows con el mingw y la construyo, ese ejecutable se puede ejecutar en cualquier computadora aunque no tenga el gcc instalado? osea tu dices ps es la version para windows... pero osea windows en si no tiene una version nativa de un compilador para c++?? claro que no sea el visual de microsoft?... usando el gcc en windows estaria construyendo aplicacion para windows? o para linux? no lo entiendo muy bien, disculpen pero todo lo que busco solo hablan del devc++ no profundizan mucho en el tema de verisones para un sistema y versiones para otro...
Si compilas un programa con las herramientas de cygwin solamente necesitas una librería DLL instalada en Windows (cygwin1.dll) para correr los programas, está es la que actúa como la API de Linux. Con mingw no estoy seguro. El compilador GNU GCC que trae cygwin te genera código objeto para Windows pero con algunas diferencias (por eso necesitas cygwin1.dll).

Por ejemplo, Unix usa 'signals' para administrar procesos, pero Windows no usa 'signals' así que si quieres que un programa escrito para Linux corra en Windows tendrías que reescribir toda la parte de los 'signals'; cygwin hace que no tengas que reescribir nada porque 'simula' los 'signals' en Windows.

En otras palabras, agarras un código fuente escrito para Linux, lo compilas con cygwin para Windows y mágicamente compila y corre correctamente; sin cygwin no podrías hacer eso en muchos casos.

Ahora la parte mas interesante es que con GCC puedes generar código objeto para Linux desde Windows y viceversa ... porque el compilador es el mismo y lo único que hace un compilador es convertir código fuente en código objeto en binario pero no lo ejecuta, aunque lógicamente requiere de una configuración e instalación diferente (por ejemplo si usa librerías .so ó .dll).

En mi opinión personal, si estas construyendo un programa en Linux usa GNU GCC desde el principio, si estas construyendo para Windows usa Microsoft Visual C/C++, cygwin y mingw para Windows son para cuando ya tienes el programa en Linux y no lo quieres volver a hacer para Windows.

La única ventaja adicional es que si haces el programa para Linux y usas cygwin corre en Linux y Windows (volviendo a compilar el programa para cada sistema), pero si lo haces para Windows tendrías que usar 'wine' u otros para ejecutarlo en Linux.

Cita:
Iniciado por zero0097 Ver Mensaje
...
El gtk tambien funciona en windows? en teoria solo bajo el paquete gtk, importo los headers en mi codigo y empiezo a suar esas clases para ocnstruir una GUI vdd y la construyo y sea cual sea el compilador que use, esta correra tanto en linux como windows? o solo con el gcc es para correr en linux?
...
Tienes que comprender que el código fuente es diferente al código objeto. GTK funciona en Windows y lo puedes usar en Microsoft Visual Studio, pero tienes que bajar la versión de GTK de desarrollo para Windows y compilar tu programa para Windows.

En Linux bajas las versión del GTK de desarrollo para Linux y compilas tu programa para Linux, en este caso usas el GNU GCC. Descargas las versiones de desarrollo porque ya vienen pre-compiladas para el sistema operativo que vas a usar.

http://www.ibiblio.org/apollo/WinGtkHowto.html

Saludos,