在erlang环境中集成aerospike客户端作为全局模块

时间:2015-05-07 15:40:09

标签: erlang aerospike

我想将aerospike erlang客户端集成到erlang环境中,作为Fedora 21中的全局模块。 我实现了使客户端nif和模块,但我必须始终复制每个项目中的文件。 现在我想使用像erlang或os模块一样的aerospike模块。 我该怎么做?

1 个答案:

答案 0 :(得分:0)

我在试验Aerospike绑定时遇到了同样的问题。问题是假定.so文件位于当前工作目录中。我对aerospike.erl进行了一些小改动,因此它的位置与路径无关。

替换

ok = erlang:load_nif("./aerospike_nif", 0).
init()

中的

  EbinDir = filename:dirname(code:which(?MODULE)),
  SoFile  = filename:join(EbinDir,"aerospike_nif"),
  erlang:load_nif(SoFile, 0).

启动erl时,添加包含Aerospike光束文件和.so的目录的路径:erl -pa path_to_aerospike/erlang/