[erlang-questions] Drive by mention of new features without explaination

Jarrod Roberson jarrod@REDACTED
Mon Dec 7 20:43:51 CET 2009

> http://www.erlang.org/doc/reference_manual/code_loading.html#id2278452

thanks Bob for the link, following those instructions I got this far:

// niftest.c
#include "erl_nif.h"
static ERL_NIF_TERM hello(ErlNifEnv* env)
    return enif_make_string(env, "Hello world!");
static ErlNifFunc nif_funcs[] =
    {"hello", 0, hello}


%% niftest.erl

run_me() ->
      erlang:load_nif("./niftest", 0).
hello() ->
      "NIF library not loaded".


[jrod@REDACTED] [~]
make clean all
rm -f *.o *.beam niftest.so
cc -arch x86_64 -O3 -fPIC -bundle -flat_namespace -undefined suppress
-fno-common -Wall
-I/Users/jrod/Downloads/otp_src_R13B03//erts/emulator/beam/   -c -o
niftest.o niftest.c
gcc -o niftest.so niftest.o -arch x86_64 -O3 -fPIC -bundle
-flat_namespace -undefined suppress -fno-common -Wall
erlc niftest.erl
[jrod@REDACTED] [~]
Erlang R13B03 (erts-5.7.4) [source] [64-bit] [smp:2:2] [rq:2]
[async-threads:0] [kernel-poll:false]

Eshell V5.7.4  (abort with ^G)
1> niftest:hello().
** exception error: undefined function niftest:hello/0

I tried exporting the run_me/0 function as well with the same results?
If I take out the -on_load(run_me/0). and add run_me/0 to the export it works.
Any ideas what I am missing here?

More information about the erlang-questions mailing list