Background
I am trying to run this Elixir desktop app in my Windows VM: https://github.com/elixir-desktop/desktop-example-app
I have installed Erlang OTP 24.X manually in my windows: https://erlang.org/download/otp_win64_24.1.4.exe
And I have installed Elixir via the official website after, and have it configured to use the Erlang/OTP version I mentioned before: https://elixir-lang.org/install.html#windows
Problem
So, I cloned the project and run mix deps.get
as usual.
After that I ran mix deps.compile
and I got an error:
λ 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.
This means I have an issue with a dependency:
λ 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.
What I tried
So, I am guessing my sqlite installation on my windows is not well done. I have installed sqlite in windows by following this tutorial:
https://www.tutorialspoint.com/sqlite/sqlite_installation.htm
Which boils down to:
- Go to SQLite download page, and download precompiled binaries from Windows section.
- Download
sqlite-shell-win32-*.zip
andsqlite-dll-win32-*.zip
zipped files. - − Create a folder
C:\>sqlite
and unzip above two zipped files in this folder, which will give yousqlite3.def
,sqlite3.dll
andsqlite3.exe
files. - − Add
C:\>sqlite
in your PATH environment variable and finally go to the command prompt and issue sqlite3 command, which should work.
And in fact when I type sqlite3
in my prompt, it does work.
However I understand I am still missing some step, but I can't figure out what.
Question
What am I missing to compile the dependency?
CodePudding user response:
Turns out my issue is because exqlite
uses a NIF. This means I needed to do an extra setup step for windows, where I install the cpp
tools and then compile the exqlite
using this prompt:
- cmd /k "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Auxiliary\Build\vcvars64.bat"
The full guide can be seen here: https://hexdocs.pm/exqlite/windows.html
More information on the official forum: