in reply to Re^2: libintl.a for Strawberry Perl
in thread libintl.a for Strawberry Perl

Try gcc -o test test.c -lintl assuming libintl.* is in the libraries search path, alternatively tell gcc where to find it using -L blahblahlocation

Replies are listed 'Best First'.
Re^4: libintl.a for Strawberry Perl
by fdesar (Beadle) on Jan 24, 2019 at 18:18 UTC

    I even tried:

    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...

Re^4: libintl.a for Strawberry Perl
by fdesar (Beadle) on Jan 24, 2019 at 19:28 UTC
    ... and those undefined symbols should be defined by msvcrt ! And I neither can link with libintl.a on MSYS2.

      What does that mean? Can you compile link ANY C program at all?

      #include <string.h> int main(void){ char buf[10]; stpcpy(buf, "hello"); //sic }