¿Cómo cambiar el orden del sistema incluido en mingw bajo cygwin?

¿Cómo cambiar el orden del sistema incluido en mingw bajo cygwin?

Estoy intentando utilizar mingw32 en cygwin32 para realizar una compilación cruzada. Sin embargo, aparece un error relacionado con float.h

In file included from /usr/i686-w64-mingw32/sys-root/mingw/include/winnt.h:16:0,
                 from /usr/i686-w64-mingw32/sys-root/mingw/include/minwindef.h:146,
                 from /usr/i686-w64-mingw32/sys-root/mingw/include/windef.h:8,
                 from /usr/i686-w64-mingw32/sys-root/mingw/include/windows.h:69,
                 from globals.h:17,
                 from globals.c:10:
/usr/i686-w64-mingw32/sys-root/mingw/include/float.h:278:57: error: expected ‘;’, ‘,’ or ‘)’ before numeric constant
 _CRTIMP double __cdecl __MINGW_NOTHROW _chgsign (double _X);

Encontré un artículo con un problema similar aquí:

https://www.cygwin.com/ml/cygwin/2003-07/msg00525.html

y sugirieron cambiar el orden de las inclusiones para que mingw float.h se encuentre antes que gcc float.h.

Sin embargo, si intento incluir el encabezado manualmente de esta manera:

i686-w64-mingw32-gcc -DHAVE_CONFIG_H -I /cygdrive/d/Cygwin32/usr/i686-w64-mingw32/sys-root/mingw/include

Al usar la opción detallada, aparece un mensaje que dice que mi inclusión fue ignorada porque "es un directorio que no pertenece al sistema y que duplica un directorio del sistema".

Supongo que al llamar a i686-w64-mingw32-gcc se incluye automáticamente ese directorio si instalé las bibliotecas mingw y la fuente de cygwin, lo cual hice.

En la salida detallada del compilador puedo ver claramente el problema en el orden de las inclusiones.

/usr/lib/gcc/i686-w64-mingw32/4.8.3/include
 /usr/lib/gcc/i686-w64-mingw32/4.8.3/include-fixed
 /usr/i686-w64-mingw32/sys-root/mingw/include

Pero, ¿cómo muevo la inclusión mingw delante de la inclusión gcc?

Respuesta1

Lo descubrí que puedes usar el indicador gcc -nostdinc y luego simplemente redefinir las órdenes de inclusión.

No estoy seguro de por qué mis búsquedas anteriores en Google no lo encontraron.

información relacionada