C接口到Erlang

Yol*_*ola 0 c erlang interop

当我使用下一条命令编译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 -雷

我的系统是Ubuntu。我收到下一个错误:

/usr/lib/libei.a(ei_pthreads.o):在函数__erl_errno_place': (.text+0x4c): undefined reference topthread_once'中/usr/lib/libei.a(ei_pthreads.o):在函数__erl_errno_place': (.text+0x7a): undefined reference topthread_getspecific'/usr/lib/libei.a(ei_pthreads.o)中:在函数__erl_errno_place': (.text+0xa2): undefined reference topthread_setspecific中/usr/lib/libei.a(ei_pthreads.o):在函数__erl_errno_place': (.text+0xb4): undefined reference topthread_getspecific中/usr/lib/libei.a(ei_pthreads.o):在函数erl_errno_key_alloc': (.text+0x136): undefined reference topthread_key_create中/usr/lib/libei.a(ei_pthreads .o):在函数ei_m_trylock': (.text+0x189): undefined reference topthread_mutex_trylock'collect2中:ld返回1退出状态

有什么建议么?

ano*_*ard 5

您需要链接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
希望这会有所帮助!