LINUX.ORG.RU

линковка в macosx


0

0

Есть macosx с прикрученными портами. Есть установленный Xcode. Дальше устанавливается gettext через порты и создаётся тестовая программа:

#include <libintl.h>
#include <locale.h>
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
setlocale( LC_ALL, "" );
bindtextdomain( "hello", "/usr/share/locale" );
textdomain( "hello" );
printf( gettext( "Hello, world!\n" ) );
exit(0);
}

компилируем:
gcc a.c -I/opt/local/include -L/opt/local/lib

получаем:
Undefined symbols:
"_libintl_textdomain", referenced from:
_main in cceR7E2m.o
"_libintl_bindtextdomain", referenced from:
_main in cceR7E2m.o
"_libintl_gettext", referenced from:
_main in cceR7E2m.o
ld: symbol(s) not found
collect2: ld returned 1 exit status

при этом:
find /opt/local -name "libintl*"
/opt/local/include/libintl.h
/opt/local/lib/libintl.8.0.2.dylib
/opt/local/lib/libintl.8.dylib
/opt/local/lib/libintl.a
/opt/local/lib/libintl.dylib
/opt/local/lib/libintl.la

=========
Вопрос: от чего такой эффект и как с этим бороться? Или хотя бы подскажите куда копать/

З.Ы. Это проблема не с конкретной библиотекой, а кажется с протами в целом, т.к. случай был получен из несобирающегося проекта.

Re: линковка в macosx

> printf( gettext( "Hello, world!\n" ) );

Верной дорогой идете товарищь, дайош по 10 уязвимостей на 1 C-функцию!

vnovouhov ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.