我尝试使用erlang文档中描述的erl_errno:http://erlang.org/doc/man/erl_error.html#。
但是,我在链接过程中遇到符号未找到的问题。我在Mac上运行,这是程序的链接方式:
g++ -L/usr/local/lib/erlang/lib/erl_interface-3.9.3/lib -o "roserl" ./src/driver.o ./src/erl_bridge.o -lei -lm -lerl_interface
我已经与 libei 和 liberl_interface 联系过。还需要什么?
这很奇怪,但你必须在你的标题中这样做:
#ifndef _REENTRANT
#define _REENTRANT /* For some reason __erl_errno is undefined unless _REENTRANT is defined */
#endif
#include "erl_interface.h"
#include "ei.h"
这为我解决了问题。现在我可以使用erl_errno
.