gcc -o test -lintl -I. test.c
with the same result.
But when I try to link with the libintl.a itself, I get a very different result:
gcc -o test test.c libintl.a
libintl.a(dcigettext.o):(.text+0x4bf): undefined reference to `__errno
+'
libintl.a(dcigettext.o):(.text+0xb7d): undefined reference to `__errno
+'
libintl.a(dcigettext.o):(.text+0xcf6): undefined reference to `__errno
+'
libintl.a(dcigettext.o):(.text+0xd25): undefined reference to `__errno
+'
libintl.a(dcigettext.o):(.text+0xdc9): undefined reference to `stpcpy'
libintl.a(dcigettext.o):(.text+0xede): undefined reference to `__errno
+'
libintl.a(dcigettext.o):(.text+0x10b1): undefined reference to `__errn
+o'
libintl.a(dcigettext.o):(.text+0x113a): undefined reference to `__errn
+o'
libintl.a(dcigettext.o):(.text+0x1149): undefined reference to `getuid
+'
libintl.a(dcigettext.o):(.text+0x1150): undefined reference to `geteui
+d'
libintl.a(dcigettext.o):(.text+0x1315): undefined reference to `getgid
+'
libintl.a(dcigettext.o):(.text+0x131c): undefined reference to `getegi
+d'
libintl.a(localcharset.o):(.text+0xb): undefined reference to `nl_lang
+info'
libintl.a(localename.o):(.text+0x7): undefined reference to `uselocale
+'
libintl.a(localename.o):(.text+0x27): undefined reference to `uselocal
+e'
libintl.a(localename.o):(.text+0xca): undefined reference to `uselocal
+e'
libintl.a(setlocale.o):(.text+0x36b): undefined reference to `newlocal
+e'
libintl.a(setlocale.o):(.text+0x39b): undefined reference to `__errno'
libintl.a(setlocale.o):(.text+0x3a5): undefined reference to `freeloca
+le'
libintl.a(setlocale.o):(.text+0x3aa): undefined reference to `__errno'
libintl.a(setlocale.o):(.text+0x459): undefined reference to `newlocal
+e'
libintl.a(setlocale.o):(.text+0x55a): undefined reference to `newlocal
+e'
libintl.a(setlocale.o):(.text+0x346): undefined reference to `newlocal
+e'
libintl.a(loadmsgcat.o):(.text+0xb9): undefined reference to `mmap'
libintl.a(loadmsgcat.o):(.text+0x2a7): undefined reference to `__errno
+'
libintl.a(loadmsgcat.o):(.text+0x45f): undefined reference to `munmap'
libintl.a(loadmsgcat.o):(.text+0x9be): undefined reference to `munmap'
libintl.a(localealias.o):(.text+0x9f): undefined reference to `__fsetl
+ocking'
libintl.a(localealias.o):(.text+0xbe): undefined reference to `fgets_u
+nlocked'
libintl.a(localealias.o):(.text+0xe5): undefined reference to `__local
+e_ctype_ptr'
libintl.a(localealias.o):(.text+0x11a): undefined reference to `__loca
+le_ctype_ptr'
libintl.a(localealias.o):(.text+0x134): undefined reference to `__loca
+le_ctype_ptr'
libintl.a(localealias.o):(.text+0x147): undefined reference to `__loca
+le_ctype_ptr'
libintl.a(localealias.o):(.text+0x17c): undefined reference to `__loca
+le_ctype_ptr'
libintl.a(localealias.o):(.text+0x2be): undefined reference to `fgets_
+unlocked'
libintl.a(l10nflist.o):(.text+0x12b): undefined reference to `stpcpy'
libintl.a(l10nflist.o):(.text+0x322): undefined reference to `argz_nex
+t'
libintl.a(l10nflist.o):(.text+0x40b): undefined reference to `stpcpy'
libintl.a(l10nflist.o):(.text+0x424): undefined reference to `stpcpy'
libintl.a(l10nflist.o):(.text+0x440): undefined reference to `stpcpy'
libintl.a(l10nflist.o):(.text+0x460): undefined reference to `stpcpy'
libintl.a(l10nflist.o):(.text+0x48d): undefined reference to `argz_str
+ingify'
libintl.a(l10nflist.o):(.text+0x4aa): undefined reference to `argz_cou
+nt'
libintl.a(l10nflist.o):(.text+0x55b): undefined reference to `__locale
+_ctype_ptr'
libintl.a(l10nflist.o):(.text+0x56a): undefined reference to `__locale
+_ctype_ptr'
libintl.a(l10nflist.o):(.text+0x5b5): undefined reference to `__locale
+_ctype_ptr'
libintl.a(l10nflist.o):(.text+0x5d1): undefined reference to `__locale
+_ctype_ptr'
libintl.a(l10nflist.o):(.text+0x5e3): undefined reference to `__locale
+_ctype_ptr'
libintl.a(plural-exp.o):(.text+0x5a): more undefined references to `__
+locale_ctype_ptr' follow
collect2.exe: error: ld returned 1 exit status
It seems another peace of code is missing (glibc maybe ? I'll have a look in MSY2 to see that)... But I still don't understand why the gcc -o test -lintl -I. test.c with libintl.a in the current directory doesn't work... |