Erlang ei ei_decode_version和其他函数未定义引用

时间:2012-01-19 15:12:18

标签: c erlang

我尝试在erlang中使用带有ei库的C代码。

我尝试用以下代码构建代码:

-I/usr/local/lib/erlang/erts-5.8.5/include/ -I/usr/local/lib/erlang/lib/erl_interface-3.7.5/include -O2 -g3 -Wall -c -fmessage-length=0

但是我得到的错误是ei功能未定义的参考。

我的简单代码:

int main(void) {
    ei_x_buff result;
    ei_x_encode_atom(&result, "ok");
    return 0;
}

 undefined reference to `ei_x_encode_atom'

我该如何解决?

谢谢。

1 个答案:

答案 0 :(得分:1)

未定义的引用是链接器错误。这意味着您需要将代码与erl_interface库链接。

实际上你需要使用-L选项来指出erl_interface库的位置和-l选项来指定要链接的库。

有点

ld -L/usr/local/otp/lib/erl_interface-3.2.3/lib \
            myprog.o -lerl_interface -lei -o myprog

(这是文档中的例子)