Discussion:
Problemas para compilar en Windows
(demasiado antiguo para responder)
PatitoFeo
2005-11-22 09:18:03 UTC
Permalink
Hola,

Aunque hace tiempo programé mucho con C ahora lo tengo bastante
oxidado, y estoy bastante perdido. ¿Alguien me puede echar un cable?

Se trata de que me he descargado el código fuente de un programa
originalmente desarrollado en Linux/Unix con GCC:

http://elib.cs.berkeley.edu/src/texttiles/

Los problemas vienen cuando lo he intentado compilar en Windows,
principalmente porque no encuentra algunas librerias/headers. Como
compilador intentaba utilizar C Miracle, que me ha parecido sencillo y
fácil de utilizar:

http://www.c-compiler.com/

En resumen:

1. Al compilar me da errores por no encontrar: errno.h, tcl.h,
unistd.h, sys/file.h, sys/types.h. ¿No son estandars? ¿las puedo
conseguir en algún sitio?

2. En caso negativo, supongo que deberia buscarme un GCC para windows,
donde puedo conseguir un ejecutable para el compilador GCC?

3. Si las dos preguntas anteriores son una tonteria: Alguien me puede
explicar cómo puedo compilar ese código fuente para poderlo ejecutar
en DOS de Windows?

muchas gracias, estoy muy perdido y me quedan pocos dias...
AnimAlf
2005-11-22 11:00:24 UTC
Permalink
Post by PatitoFeo
Hola,
no encuentra algunas librerias/headers. Como
compilador intentaba utilizar C Miracle, que me ha parecido sencillo y
Yo te recomiendo dev-c++
http://www.bloodshed.net/

Tiene soporte CVS y además mantienes los paquetes o librerías que te
bajes, tiene un listado de ellos y en casó de que te falte alguno sólo
tienes que actualizarte sin salir del entorno. Además como por aquí te
va indicando a cuales les ha aparecido una actualización.

En el encontrarás toda las herramientas necesarias para compilar el
proyecto, descargandote sólo aquellas que te hagan falta.

Saludos
Oscar Garcia
2005-11-22 11:17:54 UTC
Permalink
El 22 Nov 2005 01:18:03 -0800, "PatitoFeo"
Post by PatitoFeo
Se trata de que me he descargado el código fuente de un programa
http://elib.cs.berkeley.edu/src/texttiles/
Si quieres compilar algo de Unix bajo Windows te recomiendo usar un
entorno cygwin.
Post by PatitoFeo
1. Al compilar me da errores por no encontrar: errno.h, tcl.h,
unistd.h, sys/file.h, sys/types.h. ¿No son estandars? ¿las puedo
conseguir en algún sitio?
Son librerias POSIX si mal no recuerdo (cabeceras típicas de UNIX).
También estás usando el intérprete TCL por lo que parece. Necesitarás
instalar por separado TCL para Windows (o bien usar un entorno como
CYGWIN que ya lo tenga incorporado).
Post by PatitoFeo
2. En caso negativo, supongo que deberia buscarme un GCC para windows,
donde puedo conseguir un ejecutable para el compilador GCC?
Busca DJGPP y también CYGWIN.
Post by PatitoFeo
3. Si las dos preguntas anteriores son una tonteria: Alguien me puede
explicar cómo puedo compilar ese código fuente para poderlo ejecutar
en DOS de Windows?
¿Has pensado en instalar Linux o FreeBSD?

Un saludo.
--
Óscar Javier García Baudet
LinaresDigital
http://redstar.linaresdigital.com/
Alberto Cabello Sanchez
2005-11-22 12:46:08 UTC
Permalink
Post by PatitoFeo
Hola,
Aunque hace tiempo programé mucho con C ahora lo tengo bastante
oxidado, y estoy bastante perdido. ¿Alguien me puede echar un cable?
Se trata de que me he descargado el código fuente de un programa
http://elib.cs.berkeley.edu/src/texttiles/
Los problemas vienen cuando lo he intentado compilar en Windows,
principalmente porque no encuentra algunas librerias/headers. Como
compilador intentaba utilizar C Miracle, que me ha parecido sencillo y
http://www.c-compiler.com/
Si estaba hecho originalmente para Linux, es más fiable recurrir a la GCC.
Post by PatitoFeo
1. Al compilar me da errores por no encontrar: errno.h, tcl.h,
unistd.h, sys/file.h, sys/types.h. ¿No son estandars? ¿las puedo
conseguir en algún sitio?
unistd suena como a "UNIX standard", ¿no? Los sys/* creo recordar que
son OS-dependientes. tcl.h me recuerda a Tcl/Tk, lo cual es aún peor.
Post by PatitoFeo
2. En caso negativo, supongo que deberia buscarme un GCC para windows,
donde puedo conseguir un ejecutable para el compilador GCC?
gcc.gnu.org (no lo sé, es por decir algo)
Post by PatitoFeo
3. Si las dos preguntas anteriores son una tonteria: Alguien me puede
explicar cómo puedo compilar ese código fuente para poderlo ejecutar
en DOS de Windows?
Prueba con MinGW
Post by PatitoFeo
muchas gracias, estoy muy perdido y me quedan pocos dias...
¿No puedes trabajar sobre Linux?
Principiante
2005-11-22 16:08:22 UTC
Permalink
Post by PatitoFeo
2. En caso negativo, supongo que deberia buscarme un GCC para windows,
donde puedo conseguir un ejecutable para el compilador GCC?
**DevC++, es lo que buscas, creo. Es GCC para win con licencia GPL
http://www.bloodshed.net/
Saludos
PatitoFeo
2005-11-23 10:13:23 UTC
Permalink
Muchísimas gracias por vuestras respuestas, veo luz al final del
tunel... :)

Me he mirado el CygWin y el MinGW, y me ha parecido demasiado
complicado dados mis pocos conocimientos de Linux, además no es tanto
que necesite compilar sobre win para linux, como que simplemente
necesito ejecutarlo un par de veces para procesar unos documentos.

Lo de trabajar sobre Linux directamente era una opción, basicamente
pidiendo que me dejen usar alguno del departamento, pero como la
universidad es "de letras" tampoco puedo contar con que me sepan
explicar los detalles de como se compila en Linux...

De momento me estoy descargando el BloodShed, que tiene pinta de ser
una muy buena solución y quizás incluso incluye las librerias que
necesito.

Muchas gracias, de verdad,

Francesc
AnimAlf
2005-11-23 11:21:03 UTC
Permalink
Post by PatitoFeo
Me he mirado el CygWin y el MinGW, y me ha parecido demasiado
complicado
je je je, todo queda en casa.

Es lo mismo X'D pero reunidos en distintos lugares X'D

Saludos
David Asorey Álvarez
2005-11-24 13:02:02 UTC
Permalink
No exactamente ;-)
MinGW es el compilador GCC y familia funcionando en Windoze. Copio-pego
de su web (www.mingw.org):

MinGW: A collection of freely available and freely distributable
Windows specific header files and import libraries combined with GNU
toolsets that allow one to produce native Windows programs that do not
rely on any 3rd-party C runtime DLLs.

Cygwin es sistema para emular la funcionalidad o interfaz POSIX en un
Windoze. Copio-pego de su web (www.cygwin.com):

What Is Cygwin?
# Cygwin is a Linux-like environment for Windows. It consists of two
parts: A DLL (cygwin1.dll) which acts as a Linux API emulation layer
providing substantial Linux API functionality.
# A collection of tools, which provide Linux look and feel.


Saludos.
AnimAlf
2005-11-24 13:57:25 UTC
Permalink
On jue, 2005-11-24 at 05:02 -0800, David Asorey Álvarez wrote:

En compilación sí.

El mingw está incluido dentro del dev-win al igual que el resto de
paquetes todos son gnu.

¿No son todos paquetes gnu?

Si compruebas verás que son los mismos paquetes. En algunos hay de más,
el cygwin para mí es una continuación de los paquetes del DJGPP, al
igual que el resto. Ocurre que te viene con una bash que lanzan con un
home. Bueno, no es novedad. Todos los paquetes son gnu y son los mismos.
Unos tienen más y otros menos. Pero eso se hacia antes con los paquetes
individuales, sólo los juntaron y automatizaron quizás su instalación y
compilación. Son una colección.
Zephryn Xirdal
2005-11-24 14:28:02 UTC
Permalink
Hola.

Pero hay una diferencia muy grande entre los dos, que David ha citado pero
no remarcado.

El Cygwin *emula* el posix, y el MingW es una compilación nativa, por lo que
mientras que en el primero hay de por medio una dll que ralentiza todo
sobremanera (cygwin.dll) pues todo ha de pasar por ella, el MingW utiliza el
runtime del propio windows, con lo que hay una gran diferencia de
rendimiento.


"AnimAlf" <***@engendro.sytes.net> wrote in message news:***@localhost.localdomain...
On jue, 2005-11-24 at 05:02 -0800, David Asorey Álvarez wrote:

En compilación sí.

El mingw está incluido dentro del dev-win al igual que el resto de
paquetes todos son gnu.

¿No son todos paquetes gnu?

Si compruebas verás que son los mismos paquetes. En algunos hay de más,
el cygwin para mí es una continuación de los paquetes del DJGPP, al
igual que el resto. Ocurre que te viene con una bash que lanzan con un
home. Bueno, no es novedad. Todos los paquetes son gnu y son los mismos.
Unos tienen más y otros menos. Pero eso se hacia antes con los paquetes
individuales, sólo los juntaron y automatizaron quizás su instalación y
compilación. Son una colección.
Antoine Leca
2005-11-25 13:31:54 UTC
Permalink
Post by Zephryn Xirdal
El Cygwin *emula* el posix,
Sí.
Post by Zephryn Xirdal
y el MingW es una compilación nativa,
Mmmm. "Nativa" no está para oponerse a Posix aquí. En cada caso hay varias
capas entre tu programa y el material. Siempre necesitas el nucleo de
Windows, y arriba de él el NTDLL.DLL. Después de eso estan las diferencias:
Mingw usa el subsistema Win32, y dentro de él la biblioteca runtime C/C++ de
Microsoft. Cygwin (o UWin, o PW32) por su cuenta usa el mismo subsistema
Win32, una biblioteca de emulación Posix-sobre-Win32, y arriba una
biblioteca C (Newlib para Cygwin) más eficiente por que no se preocupa de
C++.
Hay una otra solución aún para usar Posix en Windows, es Interix/SFU, y es
un subsistema diferente, "Posix" en lugar de Win32, directamente arriba de
NTDLL.DLL, más otra biblioteca runtime C (no muy optimizada).
Si usas G++, además necesitas la biblioteca GNU libc++, sea para Mingw o
para Cygwin o para Interix.


Muy a menudo la biblioteca Cygwin intenta parecer tanto Posix *y* Unix como
sea posible, eso puede facilitar la conversión de aplicación de Unix hacia
Windows removiendo necesitad de cambiar cosas como fork() que es
completamente ajeno al espiritu de Windows, pero claro tiene un coste
operacional.

Al opuesto, Interix es una implementación de Posix (solo, no pretiende
emular a Unix), por lo cual los programas que funcionan en varios *nix van
también con él; pero los programas (tipicamente los hechos para Linux hoy en
día) que son escribido para solo un sistema operativo, no corren facilmente
con Interix, y es más senzillo con Cygwin.


Antoine
Antoine Leca
2005-11-25 13:07:38 UTC
Permalink
Post by AnimAlf
En compilación sí.
Pués, yo diría que no. Hay cosas que puedo hacer con uno y no con el otro.
Para programar con la interfaz Windows, más bién vale Mingw; para recompilar
cosas de Unix, Cygwin (o MSys).

Las cosas las más portables salen bién con los dos.
Post by AnimAlf
El mingw está incluido dentro del dev-win al igual que el resto de
paquetes todos son gnu.
¿No son todos paquetes gnu?
No. Por ejemplo, Mingw (en el sentido estricto, es decir, el método y los
archivos para usar el compilador GNU GCC con la libraría de Microsoft) son
del dominio público.

Tampoco creo que Mingw como proyecto sea "un proyecto GNU" tal como GCC por
ejemplo. De hecho, la mismísima idea de Mingw (usar plataforma proprietaria)
está completamente opuesta a la de GNU :-).
Post by AnimAlf
Si compruebas verás que son los mismos paquetes.
Dado que Mingw (MINimal Gnu-Win32, del nombre original de CygWin) se creo
como una alternativa al carácter demasiado enorme de Cygwin (y la volontad
de Cygnus de traer dinero del proyecto, en aquel entonces), es bastante
lógico.
Post by AnimAlf
el cygwin para mí es una continuación de los paquetes del DJGPP,
Mmmmm. No lo veo así, pero tiene algun sentido está visión.

Yo diría que Mingw es más una continuación en espirito de DJGPP, tal com
es/era (en el sentido usar GCC senzillamente en entornos Microsoft),
mientras tanto que Cygwin lo es más en el objetivo inicial de DJGPP (en el
sentido _portar_ el proyecto GNU hacia los entornos de Microsoft.)


Antoine
AnimAlf
2005-11-24 14:05:18 UTC
Permalink
Post by David Asorey Álvarez
No exactamente ;-)
MinGW es el compilador GCC y familia funcionando en Windoze. Copio-pego
y el MinGW tambien tiene su origen el el matrimonio Delorie que crearon
el DJGPP http://www.delorie.com/ fueron ellos quienes portaron el gcc a
win no el mingw

Saludos
Antoine Leca
2005-11-25 14:19:32 UTC
Permalink
Post by AnimAlf
y el MinGW tambien tiene su origen el el matrimonio Delorie que
crearon el DJGPP http://www.delorie.com/ fueron ellos quienes
portaron el gcc a win no el mingw
No creo que D.J. Delorie (tengo entendido que solo es una persona, pero
casado) tiene nada que ver con MinGW32, más allá de todo (y es mucho) lo que
ha hecho para portar al compilador GNU GCC a la plataforma Intel i386,
usando un arquitectura particular (el GO32-COFF) y una biblioteca propría
heredada del Borland Turbo C.

La mayor parte del desarrollo de DJGPP ocurío entre 1990 y 1996. Después, el
interes de D.J. Delorie iba a otras cosas, binutils por ejemplo. La versión
DJGPP de gcc corre sobra Windows (32-bit solo, no x64), pero en emulación
DOS/DPMI; no es un portaje a Windows en el sentido común de la palabra.

Mientras que Mingw nació en 1997, como evolución de GnuWin32,
particularamente del trabaja hecho antes por Cygnus (contratado por Novell)
para portar los binutils hasta la plataforma Win32 (formato PE). Mingw solo
es une pequeña idea (el "snapshot" del 1/7/98, la ultima versón de Colin
Peters, tiene 153 KB, incluyendo fuente y binario, los libxxx.a; no tengo el
src al alcance de la mano, pero serán unos 30 KB...) pero era une Muy Buena
Idea.

Por otro lado, todo el mundo (menos Colin) acabó como parte de RedHat...


Antoine

AnimAlf
2005-11-24 14:42:18 UTC
Permalink
Jolín, m'has puesto nervioso, mexplicaré mejor
Post by David Asorey Álvarez
No exactamente ;-)
¿no? los tres son una colección de herramientas GNU
(por eso lo de todo en casa)
Post by David Asorey Álvarez
MinGW es el compilador GCC y familia funcionando en Windoze. Copio-pego
Como comenté el compilador y todas las herramientas que coneces del
proyecto mingw proceden del proyecto DJGPP al igual que los otros. El
dev++ tiene el Ide que lo hicieron en delphi, todo lo demás es añadido,
al igual que el resto en un conjunto para ayudar al desarrollo.

Si le hechas un vistazo a los miles de paquetes que forman el proyecto
djgpp lo podrás comprobar.
Post by David Asorey Álvarez
MinGW: A collection of freely available and freely distributable
Windows specific header files and import libraries combined with GNU
toolsets that allow one to produce native Windows programs that do not
rely on any 3rd-party C runtime DLLs.
pos eso. Pero gnu en dos nació con delorie y luego de que hiciece el gcc
le siguieron todos los que contribuyeron a augmentar el proyecto, ya
sabes, las herramientas gnu suelen caracterizarse por que son muy
pequeñas, hechas para una cosa concreta.
Post by David Asorey Álvarez
Cygwin es sistema para emular la funcionalidad o interfaz POSIX en un
Cywin al igual que el resto. Es como si hablasemos de ditribuciones
linux. Si del repositorio de delorian te bajas el bash y modificas el
modo de arranque ya tienes una shell. Recuerdo que yo la incluí alguna
vez como shell del win 95 en lugar del explorer, con pantalla completa,
y tras arrancar ... te encontrabas en root del sistema de archivos.
Post by David Asorey Álvarez
What Is Cygwin?
# Cygwin is a Linux-like environment for Windows. It consists of two
parts: A DLL (cygwin1.dll) which acts as a Linux API emulation layer
providing substantial Linux API functionality.
# A collection of tools, which provide Linux look and feel.
Lo de la raiz del cygwin no se si proviene del proyecto delorie pero
apostaría que tambien. En principio todas las herramientas gnu de windos
proviene de ahí del djgpp.

Saludos
Atentamente
AnimAlf ***@tinet.org ***@engendro.sytes.net
http://www.fut.es/~acl/AnimAlf
Personal Experimental WebServer: http://www.engendro.sytes.net
LiNUX ReGiSteRED UseR #91326
PublicPGPkeyID 0xB3B41215
Is the truth out there?

Coalición europea contra el correo comercial no solicitado:
http://www.euro.cauce.org/es/
Loading...