Erlang NIF测试 - OS X Lion

bat*_*man 7 c erlang gcc erlang-nif

我正在尝试在Mac OS X Lion上从Erlang(http://www.erlang.org/doc/man/erl_nif.html)编译NIF测试.我无法编译.我错过了编译器标志吗?这是我得到的错误:

Computer:~ me $ gcc -fPIC -shared -o niftest.so niftest.c -I /usr/local/Cellar/erlang/R14B02/lib/erlang/usr/include/
Undefined symbols for architecture x86_64:
  "_enif_make_string", referenced from:
      _hello in ccXfh0oG.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

我也试过这个,-m32但它说没有i386架构.

谢谢!

小智 12

对于64位Erlang,以下内容适用于我:

gcc -undefined dynamic_lookup -dynamiclib niftest.c -o niftest.so \
    -I /usr/local/Cellar/erlang/R14B02/lib/erlang/usr/include
Run Code Online (Sandbox Code Playgroud)