[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}
};
ERL_NIF_INIT(niftest,nif_funcs,NULL,NULL,NULL,NULL)

========================

%% niftest.erl
-module(niftest).
-export([hello/0]).
-on_load(run_me/0).

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] [~]
erl
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
2>

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