无法在 Windows 上编译 exqlite

Cannot compile exqlite on Windows

背景

我正尝试在我的 Windows VM 中 运行 这个 Elixir 桌面应用程序: https://github.com/elixir-desktop/desktop-example-app

我已经在 windows 中手动安装了 Erlang OTP 24.X: https://erlang.org/download/otp_win64_24.1.4.exe

然后我通过官方网站安装了 Elixir,并将其配置为使用我之前提到的 Erlang/OTP 版本: https://elixir-lang.org/install.html#windows

问题

所以,我像往常一样克隆了项目和 运行 mix deps.get。 在那之后我 运行 mix deps.compile 我得到了一个错误:

λ mix deps.compile
===> Analyzing applications...
===> Compiling dbus
===> Analyzing applications...
===> Compiling ranch
===> Analyzing applications...
===> Compiling telemetry
==> exqlite
could not compile dependency :exqlite, "mix compile" failed. You can recompile this dependency with "mix deps.compile exqlite", update it with "mix deps.update exqlite" or clean it with "mix deps.clean exqlite"
** (Mix) "nmake" not found in the path. If you have set the MAKE environment variable,
please make sure it is correct.

这意味着我有一个依赖问题:

λ mix deps.compile exqlite
==> exqlite
could not compile dependency :exqlite, "mix compile" failed. You can recompile this dependency with "mix deps.compile exqlite", update it with "mix deps.update exqlite" or clean it with "mix deps.clean exqlite"
** (Mix) "nmake" not found in the path. If you have set the MAKE environment variable,
please make sure it is correct.

我试过的

所以,我猜我 windows 上的 sqlite 安装没有做好。我已经按照本教程在 windows 中安装了 sqlite:

https://www.tutorialspoint.com/sqlite/sqlite_installation.htm

归结为:

  1. 转到 SQLite download page,然后从 Windows 部分下载预编译的二进制文件。
  2. 下载 sqlite-shell-win32-*.zipsqlite-dll-win32-*.zip 个压缩文件。
  3. − 创建一个文件夹C:\>sqlite并在该文件夹中解压以上两个压缩文件,这将得到sqlite3.defsqlite3.dllsqlite3.exe个文件。
  4. − 在您的 PATH 环境变量中添加 C:\>sqlite,最后转到命令提示符并发出 sqlite3 命令,这应该可以工作。

事实上,当我在提示中键入 sqlite3 时,它确实有效。

不过我知道我还缺少一些步骤,但我不知道是什么。

问题

编译依赖项我缺少什么?

原来我的问题是因为 exqlite 使用了 NIF。这意味着我需要为 windows 执行额外的设置步骤,我在其中安装 cpp 工具,然后使用此提示编译 exqlite

  • cmd /k "C:\Program Files (x86)\Microsoft Visual Studio19\BuildTools\VC\Auxiliary\Build\vcvars64.bat"

完整的指南可以在这里看到: https://hexdocs.pm/exqlite/windows.html

官方论坛更多信息: