Я пытаюсь скомпилировать код, который работает на OS X и Linux, используя Cygwin. Однако я считаю, что порядок аргументов для gcc дает непредвиденные результаты.
Например, следующие ошибки:
gcc -std=gnu99 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -lglib-2.0 -lintl -liconv -fgnu89-inline -fno-leading-underscore -o nb-learn.exe nb-learn.c
но работает следующее:
gcc -std=gnu99 -fgnu89-inline -fno-leading-underscore -o nb-learn.exe nb-learn.c -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -lglib-2.0 -lintl -liconv
Может кто-нибудь объяснить, как это работает? Кроме того, есть ли методы или код, который я могу использовать для получения autoconf для изменения порядка аргументов в зависимости от платформы?
Вот первые две строки сообщения об ошибке:
/cygdrive/c/Users/aischein/AppData/Local/Temp/cc9MvUsf.o:nb-learn.c:(.text+0x260): undefined reference to `_g_hash_table_size'
/cygdrive/c/Users/aischein/AppData/Local/Temp/cc9MvUsf.o:nb-learn.c:(.text+0x29c): undefined reference to `_g_hash_table_get_keys'
Спасибо
SetJmp
(gcc 4.3.4)