Closed spapas closed 11 months ago
@cocoa-xu would you happen to know why the precompiled binary is not being picked up in the Windows environment?
Hi @spapas, it should pickup the precompiled library without using nmake
; I wonder if there were more relevant error messages before could not compile dependency :exqlite
. And if it fails to pickup the precompiled library, it should fallback to compile from source, and based on your error message, it appears that nmake
is not found on your system, and there are 2 possible reasons that I can think of for now:
So, for the first case, if you haven't installed any version of Visual Studio, you'll need to download and install one (community version is okay).
But if you already have Visual Studio installed, you need to be in the Visual Studio developer command prompt. Basically, it will update the PATH environment variable so that nmake
can be found. Reference link: https://learn.microsoft.com/en-us/cpp/build/building-on-the-command-line?view=msvc-170
Oh, one more reason is that maybe you're using OTP 26 on Windows, and the precompiled version isn't available yet.
@cocoa-xu thank you for the tips. Yes, I am using otp-26.
Any idea when the precompiled binaries for otp-26 will be available?
Thank you
@spapas It should be there once adding OTP 26 to the precompile.yml
and then releasing a minor update. :)
/cc @warmwaffles
Excellent thank you very much!
Fix has been released under v0.16.1
Hello, unfortunately I still get the same behavior; the pre-compiled binaries aren't used.
Here's my elixir/erlang version:
Erlang/OTP 26 [erts-14.1.1] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] [jit:ns]
Interactive Elixir (1.15.6) - press Ctrl+C to exit (type h() ENTER for help)
Also here's the exqlite package:
* exqlite (Hex package) (mix)
locked at 0.16.1 (exqlite) 4d40bbb6
However I still see the same when compiling:
C:\progr\elixir>mix deps.compile exqlite
==> exqlite
could not compile dependency :exqlite, "mix compile" failed. Errors may have been logged above. You can recompile this dependency with "mix deps.compile exqlite --force", 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.
Hello, unfortunately I still get the same behavior; the pre-compiled binaries aren't used.
Ahh, I missed this line in mix.exs. It should be changed to
Enum.member?(["2.16", "2.17"], nif_version)
bah okay I'm on it
Okay this time, I hope @spapas. Fix released with v0.16.2
.
@warmwaffles yes! Finally it works:
==> exqlite
Downloading precompiled NIF to c:/Users/serafeim/AppData/Local/Cache/exqlite-nif-2.17-x86_64-windows-msvc-0.16.2.tar.gz
Thank you!
No problem @spapas, please open more tickets if you run into any windows specific issues. I don't use windows regularly and do not have a dev environment set up for it. Feedback on that experience is greatly appreciated.
Hello friends, I see in the releases page that there's a precompiled binary (?) for windows. However, when I try to install
{:exqlite, "~> 0.16"},
I get:meaning it tries to compile it and doesn't use the precompiled binaries. I tried passing
config :exqlite, make_force_build: false
to my config.exs but nothing changed. What am I doing wrong?