无法在 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
归结为:
- 转到 SQLite download page,然后从 Windows 部分下载预编译的二进制文件。
- 下载
sqlite-shell-win32-*.zip
和 sqlite-dll-win32-*.zip
个压缩文件。
- − 创建一个文件夹
C:\>sqlite
并在该文件夹中解压以上两个压缩文件,这将得到sqlite3.def
、sqlite3.dll
和sqlite3.exe
个文件。
- − 在您的 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
官方论坛更多信息:
背景
我正尝试在我的 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
归结为:
- 转到 SQLite download page,然后从 Windows 部分下载预编译的二进制文件。
- 下载
sqlite-shell-win32-*.zip
和sqlite-dll-win32-*.zip
个压缩文件。 - − 创建一个文件夹
C:\>sqlite
并在该文件夹中解压以上两个压缩文件,这将得到sqlite3.def
、sqlite3.dll
和sqlite3.exe
个文件。 - − 在您的 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
官方论坛更多信息: