【发布时间】:2019-11-01 19:42:39
【问题描述】:
我正在使用 mix compile 编译我的应用程序,并且依赖项 salty 发生错误。
我已经添加了依赖salty 和libsodium。
但仍然没有解决错误。
这是我的 mix.exs 文件,其中包含所有依赖项。
defp deps do
[
{:poison, "~> 3.0", override: true},
{:syndicate, in_umbrella: true},
{:xarango, "~> 0.7.0"},
{:ecto, "~> 3.1"},
{:phoenix, "~> 1.4.0"},
{:gettext, "~> 0.11"},
{:cowboy, "~> 2.6"},
{:joken, "~> 2.0"},
{:ecto_sql, "~> 3.0"},
{:jason, "~> 1.0"},
{:postgrex, ">= 0.0.0"},
{:sage, "~> 0.4.0"},
{:salty, "~> 0.1.3", hex: :libsalty},
{:libsodium, "~> 0.0.10"}
]
end
它应该可以完美编译,但它会抛出一个错误
SALTY_CONST_INT64(box_curve25519xchacha20poly1305_SEEDBYTES);
^
src/salty_nif.c: In function ‘salty_aead_xchacha20poly1305_ietf_ABYTES’:
src/salty_nif.c:632:1: warning: control reaches end of non-void function [-Wreturn-type]
SALTY_CONST_INT64(aead_xchacha20poly1305_ietf_ABYTES);
^
src/salty_nif.c: In function ‘salty_aead_xchacha20poly1305_ietf_NPUBBYTES’:
src/salty_nif.c:631:1: warning: control reaches end of non-void function [-Wreturn-type]
SALTY_CONST_INT64(aead_xchacha20poly1305_ietf_NPUBBYTES);
^
src/salty_nif.c: In function ‘salty_aead_xchacha20poly1305_ietf_NSECBYTES’:
src/salty_nif.c:630:1: warning: control reaches end of non-void function [-Wreturn-type]
SALTY_CONST_INT64(aead_xchacha20poly1305_ietf_NSECBYTES);
^
src/salty_nif.c: In function ‘salty_aead_xchacha20poly1305_ietf_KEYBYTES’:
src/salty_nif.c:629:1: warning: control reaches end of non-void function [-Wreturn-type]
SALTY_CONST_INT64(aead_xchacha20poly1305_ietf_KEYBYTES);
^
src/salty_nif.c: In function ‘salty_aead_chacha20poly1305_ietf_ABYTES’:
src/salty_nif.c:578:1: warning: control reaches end of non-void function [-Wreturn-type]
SALTY_CONST_INT64(aead_chacha20poly1305_ietf_ABYTES);
^
src/salty_nif.c: In function ‘salty_aead_chacha20poly1305_ietf_NPUBBYTES’:
src/salty_nif.c:577:1: warning: control reaches end of non-void function [-Wreturn-type]
SALTY_CONST_INT64(aead_chacha20poly1305_ietf_NPUBBYTES);
^
src/salty_nif.c: In function ‘salty_aead_chacha20poly1305_ietf_NSECBYTES’:
src/salty_nif.c:576:1: warning: control reaches end of non-void function [-Wreturn-type]
SALTY_CONST_INT64(aead_chacha20poly1305_ietf_NSECBYTES);
^
src/salty_nif.c: In function ‘salty_aead_chacha20poly1305_ietf_KEYBYTES’:
src/salty_nif.c:575:1: warning: control reaches end of non-void function [-Wreturn-type]
SALTY_CONST_INT64(aead_chacha20poly1305_ietf_KEYBYTES);
^
Makefile:37: recipe for target 'priv/salty_nif.so' failed
make: *** [priv/salty_nif.so] Error 1
SALTY_CONST_INT64(box_curve25519xchacha20poly1305_SEEDBYTES);
^
src/salty_nif.c: In function ‘salty_aead_xchacha20poly1305_ietf_ABYTES’:
src/salty_nif.c:632:1: warning: control reaches end of non-void function [-Wreturn-type]
SALTY_CONST_INT64(aead_xchacha20poly1305_ietf_ABYTES);
^
src/salty_nif.c: In function ‘salty_aead_xchacha20poly1305_ietf_NPUBBYTES’:
src/salty_nif.c:631:1: warning: control reaches end of non-void function [-Wreturn-type]
SALTY_CONST_INT64(aead_xchacha20poly1305_ietf_NPUBBYTES);
^
src/salty_nif.c: In function ‘salty_aead_xchacha20poly1305_ietf_NSECBYTES’:
src/salty_nif.c:630:1: warning: control reaches end of non-void function [-Wreturn-type]
SALTY_CONST_INT64(aead_xchacha20poly1305_ietf_NSECBYTES);
^
src/salty_nif.c: In function ‘salty_aead_xchacha20poly1305_ietf_KEYBYTES’:
src/salty_nif.c:629:1: warning: control reaches end of non-void function [-Wreturn-type]
SALTY_CONST_INT64(aead_xchacha20poly1305_ietf_KEYBYTES);
^
src/salty_nif.c: In function ‘salty_aead_chacha20poly1305_ietf_ABYTES’:
src/salty_nif.c:578:1: warning: control reaches end of non-void function [-Wreturn-type]
SALTY_CONST_INT64(aead_chacha20poly1305_ietf_ABYTES);
^
src/salty_nif.c: In function ‘salty_aead_chacha20poly1305_ietf_NPUBBYTES’:
src/salty_nif.c:577:1: warning: control reaches end of non-void function [-Wreturn-type]
SALTY_CONST_INT64(aead_chacha20poly1305_ietf_NPUBBYTES);
^
src/salty_nif.c: In function ‘salty_aead_chacha20poly1305_ietf_NSECBYTES’:
src/salty_nif.c:576:1: warning: control reaches end of non-void function [-Wreturn-type]
SALTY_CONST_INT64(aead_chacha20poly1305_ietf_NSECBYTES);
^
src/salty_nif.c: In function ‘salty_aead_chacha20poly1305_ietf_KEYBYTES’:
src/salty_nif.c:575:1: warning: control reaches end of non-void function [-Wreturn-type]
SALTY_CONST_INT64(aead_chacha20poly1305_ietf_KEYBYTES);
^
Makefile:37: recipe for target 'priv/salty_nif.so' failed
make: *** [priv/salty_nif.so] Error 1
could not compile dependency :salty, "mix compile" failed. You can recompile this dependency with "mix deps.compile salty", update it with "mix deps.update salty" or clean it with "mix deps.clean salty"
** (Mix) Could not compile with "make" (exit status: 2).
You need to have gcc and make installed. If you are using
Ubuntu or any other Debian-based system, install the packages
"build-essential". Also install "erlang-dev" package if not
included in your Erlang/OTP version. If you're on Fedora, run
"dnf group install 'Development Tools'".
【问题讨论】:
-
你需要安装 gcc 和 make。您是否按照此错误消息进行操作?
-
是的..它已经安装了。并且还安装了 erlang-dev 包
-
但是每当我尝试通过
apt-get install libsodium-dev安装 libsodium 时,它都会说它已经是最新的。Reading package lists... Done Building dependency tree Reading state information... Done libsodium-dev is already the newest version (1.0.8-5). 0 upgraded, 0 newly installed, 0 to remove and 5 not upgraded. -
包管理器默认存储库通常没有最新版本的包。听起来您需要从其他地方获取更新版本的 libsodium。
-
我在哪里可以得到那个?
标签: erlang elixir phoenix-framework libsodium