С интерфейсом к Erlang - PullRequest
       12

С интерфейсом к Erlang

0 голосов
/ 17 октября 2011

Когда я скомпилирую пример взаимодействия между C и erlang следующей командой:

gcc -o fac -I / usr / local / lib / erlang / lib / erl_interface-3.5.9 / include\ -L / usr / local / lib / erlang / lib / erl_interface-3.5.9 / lib fac.c -lerl_interface -lei

Моя система - Ubuntu.Я получил следующие ошибки:

/ usr / lib / libei.a (ei_pthreads.o): в функции __erl_errno_place': (.text+0x4c): undefined reference to pthread_once '/usr/lib/libei.a(ei_pthreads.o): вфункция __erl_errno_place': (.text+0x7a): undefined reference to pthread_getspecific '/usr/lib/libei.a(ei_pthreads.o): в функции __erl_errno_place': (.text+0xa2): undefined reference to pthread_setspecific' /usr/lib/libei.a(ei_pthreads.o): в функции __erl_errno_place': (.text+0xb4): undefined reference to pthread_getspecific '/ usr/lib/libei.a(ei_pthreads.o): в функции erl_errno_key_alloc': (.text+0x136): undefined reference to pthread_key_create '/usr/lib/libei.a(ei_pthreads.o): в функции ei_m_trylock': (.text+0x189): undefined reference to pthread_mutex_trylock' collect2: ld вернул 1 состояние выхода

Есть предложения?

Ответы [ 2 ]

4 голосов
/ 17 октября 2011

Вам необходимо связать pthread библиотеку. Попробуйте:
gcc -o fac -I/usr/local/lib/erlang/lib/erl_interface-3.5.9/include -L/usr/local/lib/erlang/lib/erl_interface-3.5.9/lib fac.c -lerl_interface -lei -lpthread
Надеюсь, это поможет!

3 голосов
/ 17 октября 2011

Пожалуйста, попробуйте, если указание параметра командной строки -pthread (или если что-то изменилось -lpthread) решает проблему.

...