>[оверквотинг удален]
>Обе среды используют gcc, вопрос только каких версий и с какими флагами,
>плюс библиотеки обеспечивающие кроссплатформенность разные. Есть еще третий вариант - winelib.
>Важный момент: не стоит смешивать разные либы совместимости в одном проекте.
>
>
>Вы бы код приложения, которое пытаетесь запустить показали. Также вызывает сомнения -f
>ecto, неужто именно так называется программа и как винда реагирует на
>отсутствие .exe?
>
>Весьма вероятно, что вам поможет http://redmine.lighttpd.net/boards/2/topics/686 На счёт языков:
Да, хороший вопрос, но не хочется мне писать на питоне/руби/перле.
А версии да, разные. В сигвине 3.4.4 а в мингв аж 4.3.3. Самое главное что я вроде нашёл проблему компиляции в мингв. Т.е. как минимум это проблема:
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... no
checking for stdlib.h... no
checking for string.h... no
checking for memory.h... no
checking for strings.h... no
checking for inttypes.h... no
checking for stdint.h... no
checking for unistd.h... no
checking for gcc option to accept ANSI C... none needed
checking for ssize_t... no
checking for sun_len in sys/un.h... no
checking for fpos_t in stdio.h... yes
checking for sys/socket.h... no
Однако в мингв всё есть. Пробовал флаги --includedir и --oldincludedir. Не помогло. Однако меня сразу удивило:
checking for sys/types.h... yes
checking for sys/stat.h... no
Т.е. в папке sys есть types.h но нет stat.h. Но там всё есть. Я сразу решил посмотреть отчёт:
configure:7756: checking for sys/types.h
configure:7768: gcc -c -g -O2 conftest.c >&5
configure:7771: $? = 0
configure:7774: test -s conftest.o
configure:7777: $? = 0
configure:7787: result: yes
configure:7756: checking for sys/stat.h
configure:7768: gcc -c -g -O2 conftest.c >&5
In file included from configure:7762:
confdefs.h:9:25: warning: missing whitespace after the macro name
configure:7764:5: error: token "" is not valid in preprocessor expressions
configure:7771: $? = 1
configure: failed program was:
#line 7762 "configure"
#include "confdefs.h"
#include <stdio.h>
#if HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#if HAVE_SYS_STAT_H
# include <sys/stat.h>
#endif
#if STDC_HEADERS
# include <stdlib.h>
# include <stddef.h>
#else
# if HAVE_STDLIB_H
# include <stdlib.h>
# endif
#endif
#if HAVE_STRING_H
# if !STDC_HEADERS && HAVE_MEMORY_H
# include <memory.h>
# endif
# include <string.h>
#endif
#if HAVE_STRINGS_H
# include <strings.h>
#endif
#if HAVE_INTTYPES_H
# include <inttypes.h>
#else
# if HAVE_STDINT_H
# include <stdint.h>
# endif
#endif
#if HAVE_UNISTD_H
# include <unistd.h>
#endif
#include <sys/stat.h>
configure:7787: result: no
configure:7756: checking for stdlib.h
configure:7768: gcc -c -g -O2 conftest.c >&5
In file included from configure:7762:
confdefs.h:9:25: warning: missing whitespace after the macro name
configure:7764:5: error: token "" is not valid in preprocessor expressions
configure:7771: $? = 1
configure: failed program was:
...
error: token "" is not valid in preprocessor expressions
Что это за баг версии 4,3,3 или как? Это можно вылечить? Я даже не знаю что делать. Есть предположение что он просто не может использовать пробелы между # и include. Есть идеи как поправить?