2016-12-28 14 views
0

Phoenix WebアプリケーションにEjabberdを埋め込みました。これを行うために、私はthis tutorialに従おうとしました。PhoenixアプリケーションとMixのEjabberd依存関係をコンパイルする際にエラーが発生しました:依存関係をコンパイルできませんでした。

ubuntu/xenial64 Vagrantボックスをインストール
  • :手順は、以下のとおりでした。

  • 取り付けられたエリクシールは、official guideに従って。

  • インストール済みフェニックスofficial guideに従って。成功したフェニックスの「シードアプリの依存関係をコンパイルするためにいくつかのパッケージがインストールさ

  • mix do deps.get, compile

  • を実行し

    defmodule PhoenixEjabberd.Mixfile do 
        use Mix.Project 
    
        def project do 
        [app: :phoenix_ejabberd, 
        version: "0.0.1", 
        elixir: "~> 1.2", 
        elixirc_paths: elixirc_paths(Mix.env), 
        compilers: [:phoenix, :gettext] ++ Mix.compilers, 
        build_embedded: Mix.env == :prod, 
        start_permanent: Mix.env == :prod, 
        aliases: aliases(), 
        deps: deps()] 
        end 
    
        # Configuration for the OTP application. 
        # 
        # Type `mix help compile.app` for more information. 
        def application do 
        [mod: {PhoenixEjabberd, []}, 
        applications: [:phoenix, :phoenix_pubsub, :phoenix_html, :cowboy, 
            :logger, :ejabberd, :gettext, 
            :phoenix_ecto, :postgrex]] 
        end 
    
        # Specifies which paths to compile per environment. 
        defp elixirc_paths(:test), do: ["lib", "web", "test/support"] 
        defp elixirc_paths(_),  do: ["lib", "web"] 
    
        # Specifies your project dependencies. 
        # 
        # Type `mix help deps` for examples and options. 
        defp deps do 
        [{:phoenix, "~> 1.2.1"}, 
        {:phoenix_pubsub, "~> 1.0"}, 
        {:phoenix_ecto, "~> 3.0"}, 
        {:postgrex, ">= 0.0.0"}, 
        {:phoenix_html, "~> 2.6"}, 
        {:phoenix_live_reload, "~> 1.0", only: :dev}, 
        {:gettext, "~> 0.11"}, 
        {:cowboy, "~> 1.0"}, 
        {:ejabberd, "~> 16.12", github: "processone/ejabberd"} 
        ] 
        end 
    
        # Aliases are shortcuts or tasks specific to the current project. 
        # For example, to create, migrate and run the seeds file at once: 
        # 
        #  $ mix ecto.setup 
        # 
        # See the documentation for `Mix` for more info on aliases. 
        defp aliases do 
        ["ecto.setup": ["ecto.create", "ecto.migrate", "run priv/repo/seeds.exs"], 
        "ecto.reset": ["ecto.drop", "ecto.setup"], 
        "test": ["ecto.create --quiet", "ecto.migrate", "test"]] 
        end 
    end 
    
  • sudo apt install build-essential libssl-dev libyaml-cpp-dev libyaml-dev libpython2.7-dev

  • を私はmix.exsファイルへejabberd依存関係を追加しました

    多くの場合、未定義の関数や変数から大量のエラーが発生します。私はフルログをthis Gistに入れました。

なぜこれらのエラーが発生していますか?誰でもejabberdの依存関係をコンパイルするのに成功しましたか?どうやって?ありがとうございました:)

答えて

1

不明な理由のためejabberdはルートプロジェクトフォルダからコンパイルできません。コンパイルするには、次のようにしました:

mix deps.get # to retrieve ejabberd 
cd deps/ejabberd 
mix do deps.get, compile 
cd - # to the project root 
mix compile # now the project would compile 
関連する問題