Hallo, ich versuche, das Beispiel Hallo Welt für Erlang NIF ( Native implementierte Funktion ) hier gezeigt zu bekommen Ссылка von Elixir auf OSX 64bit zu arbeiten.
Zuerst erstelle ich den C-Code:
%Vor% Dann kompiliere ich es erfolgreich mit gcc
für 64 Bit Architektur, wie hier vorgeschlagen
Erlang NIF-Test - OS X Lion
was die notwendige Datei niftest.so
erzeugt, die ich von Erlang / Elixir aus einbinden kann. Mein Elixier (niftest.ex) sieht so aus (inspiriert von einem komplexeren Beispiel berichtete hier ):
Jetzt mit niftest.so und niftest.ex im selben Verzeichnis starte ich Elixier mit iex
und tippe Niftest.hello
ein und alles was ich zurückbekomme ist: "NIF library not loaded"
Vermisse ich einen wichtigen Schritt? - Bitte helfen!
Der Ladevorgang der Bibliothek schlägt im Hintergrund fehl. Sie können bestätigen, dass es erfolgreich ist:
%Vor%Dies führt zu einem Fehler:
%Vor% Das passiert, weil eine NIF-Lib nur von ihrem "Owning" -Modul aus aufgerufen werden kann. Der Name dieses Moduls ist das erste Argument des Makros ERL_NIF_INIT
. Sie können dies beheben, indem Sie diesen Aufruf ändern und neu kompilieren:
Es gibt auch einen Tippfehler im Lasthaken. Es sollte sein:
%Vor%Tags und Links macos erlang native erlang-nif elixir