備註:git
mix new erlangelixirdemo 項目結構以下: ├── README.md ├── config │ └── config.exs ├── lib │ └── erlangelixirdemo.ex ├── mix.exs └── test ├── erlangelixirdemo_test.exs └── test_helper.exs
建立src 目錄,並編寫erlang code 項目結果以下: ├── README.md ├── config │ └── config.exs ├── lib │ └── erlangelixirdemo.ex ├── mix.exs ├── src │ └── app.erl └── test ├── erlangelixirdemo_test.exs └── test_helper.exs src/app.erl 代碼以下: -module(app). %%API -export([ login/0, userlogin/0, login/2, userlogin/1 ]). -record(user, { name, age }). login() -> {ok,'dalongdemo'}. login(Name , Password) -> {ok,'appdemo'}. userlogin()-> #user{name='dalongdemo',age=44}. userlogin(User)-> User.
lib/erlangelixirdemo.ex 代碼以下: defmodule Erlangelixirdemo do @moduledoc """ Documentation for Erlangelixirdemo. """ def call_erlang do IO.inspect :app.userlogin() end end
iex -S mix Erlang/OTP 20 [erts-9.3] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:10] [hipe] [kernel-poll:false] [dtrace] Compiling 1 file (.erl) Compiling 1 file (.ex) Generated erlangelixirdemo app Interactive Elixir (1.6.4) - press Ctrl+C to exit (type h() ENTER for help) iex(1)> E Elixir Enum Enumerable ErlangError Erlangelixirdemo Exception iex(1)> Erlang ErlangError Erlangelixirdemo iex(1)> Erlangelixirdemo. MixProject call_erlang/0 iex(1)> Erlangelixirdemo.call_erlang {:user, :dalongdemo, 44} {:user, :dalongdemo, 44}
默認mix compile 的時候,對於erlang 代碼是在src 目錄進行編譯的,同時能夠在 mix.exs 修改
def project do
[
app: :appdemo,
version: "0.1.0",
elixir: "~> 1.6",
start_permanent: Mix.env() == :prod,
deps: deps()
]
end
以下:
def project do
[app: :my_app,
version: "0.0.1",
elixir: "~> 1.0",
erlc_paths: ["src"], # ADD THIS OPTION
build_embedded: Mix.env == :prod,
start_permanent: Mix.env == :prod,
deps: deps]
end
https://github.com/rongfengliang/elixir-erlang