With the latest commit.
c:\git\ISx>cl inflate_tinfl.c ISx.c miniz_tinfl.c
Microsoft (R) C/C++ Optimizing Compiler Version 19.35.32213 for x64
Copyright (C) Microsoft Corporation. All rights reserved.
inflate_tinfl.c
ISx.c
miniz_tinfl.c
Generating Code...
Microsoft (R) Incremental Linker Version 14.35.32213.0
Copyright (C) Microsoft Corporation. All rights reserved.
/out:inflate_tinfl.exe
inflate_tinfl.obj
ISx.obj
miniz_tinfl.obj
c:\git\ISx>inflate_tinfl.exe
InstallShield file extractor v0.3.6 @YX Hao
Usage: inflate_tinfl.exe <InstallShield file>
c:\git\ISx>inflate_tinfl.exe "C:\Users\Adam\Downloads\Omada_SDN_Controller_v5.8.4_Windows\Omada Controller.exe"
C:\Users\Adam\Downloads\Omada_SDN_Controller_v5.8.4_Windows\Omada Controller.exe
no extra data found!
c:\git\ISx>inflate_tinfl.exe "C:\Users\Adam\Downloads\Omada_SDN_Controller_v5.8.4_Windows\Omada Controller.exe"
C:\Users\Adam\Downloads\Omada_SDN_Controller_v5.8.4_Windows\Omada Controller.exe
no extra data found!
With your release
c:\git\ISx>ISx.exe "C:\Users\Adam\Downloads\Omada_SDN_Controller_v5.8.4_Windows\Omada Controller.exe"
C:\Users\Adam\Downloads\Omada_SDN_Controller_v5.8.4_Windows\Omada Controller.exe
[0x0010A800]
Dir: "C:\Users\Adam\Downloads\Omada_SDN_Controller_v5.8.4_Windows\Omada Controller_u\"
0x00000000 1091584 "Omada Controller_sfx.exe" ... Y
0x0010A858 22480 "Disk1\0x0409.ini" ... Y
0x0011007A 894309 "Disk1\data1.cab" ... Y
0x001EA62F 66003 "Disk1\data1.hdr" ... Y
0x001FA85A 237703221 "Disk1\data2.cab" ... Y
0x0E4AB8F1 1625088 "Disk1\ISSetup.dll" ... Y
0x0E638541 550 "Disk1\layout.bin" ... Y
0x0E6387BB 1091584 "Disk1\setup.exe" ... Y
0x0E743009 2464 "Disk1\setup.ini" ... Y
0x0E7439FB 250512 "Disk1\setup.inx" ... Y
I'll stick with your release for now!
Hi, It's not clear what version of miniz/tinfl is required - miniz_tinfl.h doesn't exist in the original archived miniz 1.14.
Apologies - I may have misunderstood.
Two files are created - is the .bin file supposed to get unpacked as well?
Compiled with Microsoft (R) C/C++ Optimizing Compiler Version 19.35.32213 for x86
ISx from git master
on Windows 10
Sure, but which version? That also means you're defining MINIZ_EXPORT
somewhere
[0x0010A800]
Dir: "C:\Users\Adam\Downloads\Omada_SDN_Controller_v5.8.4_Windows\Omada Controller_u\"
0x00000000 1091584 "Omada Controller_sfx.exe" ... Y
new installer version!
extra data:
0x0010A800 241656971 "Omada Controller_ext.bin" ... Y
Original file is https://static.tp-link.com/upload/software/2023/202301/20230106/Omada_SDN_Controller_v5.8.4_Windows.zip, the installer is in the zip.
Strings inside the file suggest this is InstallShield 24
Hi, It's not clear what version of miniz/tinfl is required - miniz_tinfl.h doesn't exist in the original archived miniz 1.14.
Yes, I know this is really only for Home Assistant, but I am trying to see if there is an issue in Home Assistant or somewhere else
import aiohomekit
from zeroconf import asyncio as az
import asyncio
async def go():
z = az.AsyncZeroconf()
c = aiohomekit.Controller(z)
await c.async_start()
async for d in c.async_discover():
print(d)
if __name__ == '__main__':
asyncio.run(go())
Traceback (most recent call last):
File "C:\git\test-homekit\stuff.py", line 14, in <module>
asyncio.run(go())
File "C:\Users\Adam\AppData\Local\Programs\Python\Python310\lib\asyncio\runners.py", line 44, in run
return loop.run_until_complete(main)
File "C:\Users\Adam\AppData\Local\Programs\Python\Python310\lib\asyncio\base_events.py", line 646, in run_until_complete
return future.result()
File "C:\git\test-homekit\stuff.py", line 8, in go
await c.async_start()
File "C:\git\test-homekit\env\lib\site-packages\aiohomekit\controller\controller.py", line 83, in async_start
await self._async_register_backend(
File "C:\git\test-homekit\env\lib\site-packages\aiohomekit\controller\controller.py", line 75, in _async_register_backend
self._transports.append(await self._tasks.enter_async_context(controller))
File "C:\Users\Adam\AppData\Local\Programs\Python\Python310\lib\contextlib.py", line 619, in enter_async_context
result = await _cm_type.__aenter__(cm)
File "C:\git\test-homekit\env\lib\site-packages\aiohomekit\controller\abstract.py", line 437, in __aenter__
await self.async_start()
File "C:\git\test-homekit\env\lib\site-packages\aiohomekit\zeroconf.py", line 223, in async_start
self._browser = find_brower_for_hap_type(
File "C:\git\test-homekit\env\lib\site-packages\aiohomekit\zeroconf.py", line 148, in find_brower_for_hap_type
raise TransportNotSupportedError(f"There is no zeroconf browser for {hap_type}")
aiohomekit.exceptions.TransportNotSupportedError: Transport There is no zeroconf browser for _hap._tcp.local. not supported. See setup.py for required dependencies.
https://github.com/Jc2k/aiohomekit/blob/db950276374b73034618c6a2e1225f9d67ba6732/aiohomekit/exceptions.py#L293
There's no setup.py
in this project any more (?) but I am assuming this means I'm missing some Zeroconf support on Windows? Theoretically Windows 10 should support Zeroconf properly now, and I probably also have Bonjour installed.
TIL aiohomekitctl
, thanks. I am not entirely sure what that error should be, I think it needs to be changed in exceptions.py
to read something along the lines of Transport error: {t}
to be clearer.
Yes, I know this is really only for Home Assistant, but I am trying to see if there is an issue in Home Assistant or somewhere else
import aiohomekit
from zeroconf import asyncio as az
import asyncio
async def go():
z = az.AsyncZeroconf()
c = aiohomekit.Controller(z)
await c.async_start()
async for d in c.async_discover():
print(d)
if __name__ == '__main__':
asyncio.run(go())
Traceback (most recent call last):
File "C:\git\test-homekit\stuff.py", line 14, in <module>
asyncio.run(go())
File "C:\Users\Adam\AppData\Local\Programs\Python\Python310\lib\asyncio\runners.py", line 44, in run
return loop.run_until_complete(main)
File "C:\Users\Adam\AppData\Local\Programs\Python\Python310\lib\asyncio\base_events.py", line 646, in run_until_complete
return future.result()
File "C:\git\test-homekit\stuff.py", line 8, in go
await c.async_start()
File "C:\git\test-homekit\env\lib\site-packages\aiohomekit\controller\controller.py", line 83, in async_start
await self._async_register_backend(
File "C:\git\test-homekit\env\lib\site-packages\aiohomekit\controller\controller.py", line 75, in _async_register_backend
self._transports.append(await self._tasks.enter_async_context(controller))
File "C:\Users\Adam\AppData\Local\Programs\Python\Python310\lib\contextlib.py", line 619, in enter_async_context
result = await _cm_type.__aenter__(cm)
File "C:\git\test-homekit\env\lib\site-packages\aiohomekit\controller\abstract.py", line 437, in __aenter__
await self.async_start()
File "C:\git\test-homekit\env\lib\site-packages\aiohomekit\zeroconf.py", line 223, in async_start
self._browser = find_brower_for_hap_type(
File "C:\git\test-homekit\env\lib\site-packages\aiohomekit\zeroconf.py", line 148, in find_brower_for_hap_type
raise TransportNotSupportedError(f"There is no zeroconf browser for {hap_type}")
aiohomekit.exceptions.TransportNotSupportedError: Transport There is no zeroconf browser for _hap._tcp.local. not supported. See setup.py for required dependencies.
https://github.com/Jc2k/aiohomekit/blob/db950276374b73034618c6a2e1225f9d67ba6732/aiohomekit/exceptions.py#L293
There's no setup.py
in this project any more (?) but I am assuming this means I'm missing some Zeroconf support on Windows? Theoretically Windows 10 should support Zeroconf properly now, and I probably also have Bonjour installed.
@voltagex I was trying to provide a workaround to unblock you. I was not explaining the behavior.
Thanks, understood.
@voltagex does your project include the file
appsettings.Development.json
? If so, try to change thedefault
toTrace
there. Looks to me the logger settings are overridden by the values from the configuration."LogLevel": { "Default": "Trace", "Microsoft.AspNetCore": "Warning" }
How can you tell the settings are overridden? Shouldn’t values in code take preference over configuration?
Note that
app.MapGet("/weatherforecast", (HttpContext httpContext, [FromServices] ILoggerFactory loggerFactory) =>
{
var logger = loggerFactory.CreateLogger<Program>();
behaves the same - i.e. not enabled
Seems to be similar to #79798, but I have a repro with .NET 7 - either the Web API template needs to be changed or the documentation for logging needs to be clarified or both.
Modify the example ASP Net Core Web API template as follows:
using Microsoft.AspNetCore.Mvc;
namespace TestWebApp
{
public class Program
{
public static void Main(string[] args)
{
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
builder.Services.AddAuthorization();
builder.Logging.ClearProviders();
builder.Logging.AddConsole();
builder.Logging.SetMinimumLevel(LogLevel.Trace);
var app = builder.Build();
// Configure the HTTP request pipeline.
app.UseAuthorization();
var summaries = new[]
{
"Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
};
app.MapGet("/weatherforecast", (HttpContext httpContext, [FromServices] ILogger<Program> logger) =>
{
logger.LogTrace("Trace event from /weatherforecast");
Console.WriteLine($"ILogger enabled for trace? {logger.IsEnabled(LogLevel.Trace)}");
var forecast = Enumerable.Range(1, 5).Select(index =>
new WeatherForecast
{
Date = DateOnly.FromDateTime(DateTime.Now.AddDays(index)),
TemperatureC = Random.Shared.Next(-20, 55),
Summary = summaries[Random.Shared.Next(summaries.Length)]
})
.ToArray();
return forecast;
});
app.Run();
}
}
}
(I am testing in Visual Studio 2022 17.4.3 so I hit F5 to run as standalone/Kestrel)
I would absolutely expect the following output:
info: Microsoft.Hosting.Lifetime[14]
Now listening on: http://localhost:5206
info: Microsoft.Hosting.Lifetime[0]
Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
Hosting environment: Development
info: Microsoft.Hosting.Lifetime[0]
Content root path: C:\git\TestWebApp
Trace event from /weatherforecast
ILogger enabled for trace? True
info: Microsoft.Hosting.Lifetime[14]
Now listening on: http://localhost:5206
info: Microsoft.Hosting.Lifetime[0]
Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
Hosting environment: Development
info: Microsoft.Hosting.Lifetime[0]
Content root path: C:\git\TestWebApp
ILogger enabled for trace? False
Unsure, but I haven't had this much trouble with ILogger before
No response
Windows 10.0.19045.2364 NET 7.0.101 Visual Studio 17.3.4
No response
You might want to exclude README.md changes from CI - I didn't realise how many builds this would trigger!
As discussed in #226. First pass, happy to update/move/reword this as needed.
Improve README for Windows users
As discussed in #226
Nothing in the logs, I select, pair and connect to the COM port, but the screen stays on "Waiting"
Coming back to this - Windows 10.0.19045.2364, Edge 108.0.1462.54, the problem hasn't reoccurred.
Is your feature request related to a problem? Please describe.
Don't search WindowsApps folders (maybe if the related UWP app is also shown)
The top result is C:\Program Files\WindowsApps\Microsoft.SysinternalsSuite_2022.11.2.0_x64__8wekyb3d8bbwe\Tools\Procmon.exe where the second result is the UWP (?) shortcut for the same thing.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
Allow a list of excluded folders, and exclude WindowsApps by default.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.
Yep, that seems to fix it
You're right! Oops!
It seemed like even when opening "developer command prompt" for x64, I was getting the wrong compiler. The MSVC toolchain doesn't really use "$CC", but there is an equivalent vcvarsall.bat which sets the environment variables (mentioned by the other issue I linked)
@voltagex would you mind making a PR to the readme for special setup for windows? I think that would be beneficial to the next person.
I can, but I'm still confused as to how the Makefile can call x64 host tools and produce an x86 DLL. Do you know anyone who would have more of an insight into the way NIFs work?
To be honest, this is the first time I've touched Erlang / Elixir.
I am also wondering if there's a way to get a better error message (the underlying error should have been something along the lines of "bad image format")
Using Windows 10, exqite appears to build correctly, but I get sqlite3_nif: Unspecified error
when trying to run {:ok, conn} = Exqlite.Sqlite3.open(":memory:")
c:\git\test-elixir\playground>mix deps.get
-> Running mix loadconfig (inside Playground.MixProject)
<- Ran mix loadconfig in 0ms
-> Running mix deps.get (inside Playground.MixProject)
-> Running mix archive.check (inside Playground.MixProject)
<- Ran mix archive.check in 0ms
Resolving Hex dependencies...
Resolution completed in 0.117s
New:
connection 1.1.0
db_connection 2.4.3
elixir_make 0.7.3
exqlite 0.12.0
telemetry 1.1.0
* Getting exqlite (Hex package)
Using locally cached package (c:/Users/Adam/.hex/packages/hexpm/exqlite-0.12.0.tar)
* Getting db_connection (Hex package)
Using locally cached package (c:/Users/Adam/.hex/packages/hexpm/db_connection-2.4.3.tar)
* Getting elixir_make (Hex package)
Using locally cached package (c:/Users/Adam/.hex/packages/hexpm/elixir_make-0.7.3.tar)
* Getting connection (Hex package)
Using locally cached package (c:/Users/Adam/.hex/packages/hexpm/connection-1.1.0.tar)
* Getting telemetry (Hex package)
Fetched package (https://repo.hex.pm/tarballs/telemetry-1.1.0.tar)
-> Running mix will_recompile (inside Playground.MixProject)
<- Ran mix will_recompile in 1ms
<- Ran mix deps.get in 1044ms
c:\git\test-elixir\playground>iex -S mix
-> Running mix loadconfig (inside Playground.MixProject)
<- Ran mix loadconfig in 0ms
-> Running mix run (inside Playground.MixProject)
-> Running mix app.start (inside Playground.MixProject)
-> Running mix app.config (inside Playground.MixProject)
-> Running mix compile (inside Playground.MixProject)
-> Running mix loadpaths (inside Playground.MixProject)
-> Running mix archive.check (inside Playground.MixProject)
<- Ran mix archive.check in 0ms
-> Running mix deps.loadpaths (inside Playground.MixProject)
-> Running mix deps.precompile (inside Playground.MixProject)
<- Ran mix deps.precompile in 2ms
==> connection
-> Running mix compile --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside Connection.Mixfile)
-> Running mix loadpaths --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside Connection.Mixfile)
<- Ran mix loadpaths in 0ms
-> Running mix compile.all --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside Connection.Mixfile)
-> Running mix compile.yecc --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside Connection.Mixfile)
<- Ran mix compile.yecc in 1ms
-> Running mix compile.leex --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside Connection.Mixfile)
<- Ran mix compile.leex in 0ms
-> Running mix compile.erlang --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside Connection.Mixfile)
<- Ran mix compile.erlang in 0ms
-> Running mix compile.elixir --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside Connection.Mixfile)
Compiling 1 file (.ex)
<- Ran mix compile.elixir in 194ms
-> Running mix compile.app --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside Connection.Mixfile)
Generated connection app
<- Ran mix compile.app in 3ms
<- Ran mix compile.all in 212ms
<- Ran mix compile in 213ms
===> Expanded command sequence to be run: []
===> Running provider: do
===> Expanded command sequence to be run: [app_discovery,{bare,compile}]
===> Running provider: app_discovery
===> Found top-level apps: [telemetry]
using config: [{src_dirs,["src"]},{lib_dirs,["apps/*","lib/*","."]}]
===> Running provider: {bare,compile}
===> Compile (untagged)
===> Running hooks for compile in app telemetry (c:/git/test-elixir/playground/deps/telemetry) with configuration:
===> {pre_hooks, []}.
===> Running hooks for erlc_compile in app telemetry (c:/git/test-elixir/playground/deps/telemetry) with configuration:
===> {pre_hooks, []}.
===> Analyzing applications...
===> Compiling telemetry
===> compile options: {erl_opts, [debug_info]}.
===> files to analyze ["c:/git/test-elixir/playground/deps/telemetry/src/telemetry_sup.erl",
"c:/git/test-elixir/playground/deps/telemetry/src/telemetry_handler_table.erl",
"c:/git/test-elixir/playground/deps/telemetry/src/telemetry_app.erl",
"c:/git/test-elixir/playground/deps/telemetry/src/telemetry.erl"]
===> Compiled telemetry_app.erl
===> Compiled telemetry_sup.erl
===> Compiled telemetry_handler_table.erl
===> Compiled telemetry.erl
===> Running hooks for erlc_compile in app telemetry (c:/git/test-elixir/playground/deps/telemetry) with configuration:
===> {post_hooks, []}.
===> Running hooks for app_compile in app telemetry (c:/git/test-elixir/playground/deps/telemetry) with configuration:
===> {pre_hooks, []}.
===> Running hooks for app_compile in app telemetry (c:/git/test-elixir/playground/deps/telemetry) with configuration:
===> {post_hooks, []}.
===> Running hooks for compile in app telemetry (c:/git/test-elixir/playground/deps/telemetry) with configuration:
===> {post_hooks, []}.
==> db_connection
-> Running mix compile --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside DBConnection.Mixfile)
-> Running mix loadpaths --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside DBConnection.Mixfile)
<- Ran mix loadpaths in 0ms
-> Running mix compile.all --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside DBConnection.Mixfile)
-> Running mix compile.yecc --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside DBConnection.Mixfile)
<- Ran mix compile.yecc in 0ms
-> Running mix compile.leex --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside DBConnection.Mixfile)
<- Ran mix compile.leex in 0ms
-> Running mix compile.erlang --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside DBConnection.Mixfile)
<- Ran mix compile.erlang in 0ms
-> Running mix compile.elixir --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside DBConnection.Mixfile)
Compiling 14 files (.ex)
<- Ran mix compile.elixir in 706ms
-> Running mix compile.app --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside DBConnection.Mixfile)
Generated db_connection app
<- Ran mix compile.app in 1ms
<- Ran mix compile.all in 723ms
<- Ran mix compile in 724ms
==> elixir_make
-> Running mix compile --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside ElixirMake.Mixfile)
-> Running mix loadpaths --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside ElixirMake.Mixfile)
<- Ran mix loadpaths in 0ms
-> Running mix compile.all --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside ElixirMake.Mixfile)
-> Running mix compile.yecc --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside ElixirMake.Mixfile)
<- Ran mix compile.yecc in 0ms
-> Running mix compile.leex --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside ElixirMake.Mixfile)
<- Ran mix compile.leex in 0ms
-> Running mix compile.erlang --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside ElixirMake.Mixfile)
<- Ran mix compile.erlang in 0ms
-> Running mix compile.elixir --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside ElixirMake.Mixfile)
Compiling 6 files (.ex)
<- Ran mix compile.elixir in 199ms
-> Running mix compile.app --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside ElixirMake.Mixfile)
Generated elixir_make app
<- Ran mix compile.app in 0ms
<- Ran mix compile.all in 222ms
<- Ran mix compile in 222ms
==> exqlite
-> Running mix compile --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside Exqlite.MixProject)
-> Running mix loadpaths --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside Exqlite.MixProject)
<- Ran mix loadpaths in 0ms
-> Running mix compile.all --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside Exqlite.MixProject)
-> Running mix compile.elixir_make --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside Exqlite.MixProject)
Microsoft (R) Program Maintenance Utility Version 14.34.31937.0
Copyright (C) Microsoft Corporation. All rights reserved.
del /f /q priv
Could Not Find c:\git\test-elixir\playground\deps\exqlite\priv
erl -noshell -s init stop -eval "io:setopts(standard_io, [{encoding, unicode}]), io:format(\"ERTS_INCLUDE_PATH=~ts/erts-~ts/include/\", [code:root_dir(), erlang:system_info(version)])." > Makefile.auto.win
nmake - -F Makefile.win priv\sqlite3_nif.dll
Microsoft (R) Program Maintenance Utility Version 14.34.31937.0
Copyright (C) Microsoft Corporation. All rights reserved.
if NOT EXIST "priv" mkdir "priv"
cl -I"c:/Program Files/Erlang OTP/usr/include" -DNDEBUG=1 -DSQLITE_OMIT_DEPRECATED=1 -DSQLITE_ENABLE_RTREE=1 -DSQLITE_ENABLE_RBU=1 -DSQLITE_ENABLE_MATH_FUNCTIONS=1 -DSQLITE_ENABLE_GEOPOLY=1 -DSQLITE_ENABLE_FTS5=1 -DSQLITE_ENABLE_FTS4=1 -DSQLITE_ENABLE_FTS3=1 -DENABLE_UPDATE_DELETE_LIMIT=1 -DENABLE_STAT4=1 -DENABLE_SOUNDEX=1 -DENABLE_LOAD_EXTENSION=1 -DENABLE_FTS3_PARENTHESIS=1 -DALLOW_COVERING_INDEX_SCAN=1 -DHAVE_USLEEP=1 -DSQLITE_DQS=0 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS=1 -DSQLITE_USE_URI=1 -DSQLITE_THREADSAFE=1 -Ic_src -EHsc -O2 -I"c:/Program Files/Erlang OTP/erts-13.0.4/include/" -LD -MD -Fepriv\sqlite3_nif.dll c_src\sqlite3.c c_src\sqlite3_nif.c
Microsoft (R) C/C++ Optimizing Compiler Version 19.34.31937 for x86
Copyright (C) Microsoft Corporation. All rights reserved.
sqlite3.c
sqlite3_nif.c
Generating Code...
Microsoft (R) Incremental Linker Version 14.34.31937.0
Copyright (C) Microsoft Corporation. All rights reserved.
/dll
/implib:priv\sqlite3_nif.lib
/out:priv\sqlite3_nif.dll
sqlite3.obj
sqlite3_nif.obj
Creating library priv\sqlite3_nif.lib and object priv\sqlite3_nif.exp
<- Ran mix compile.elixir_make in 7901ms
-> Running mix compile.yecc --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside Exqlite.MixProject)
<- Ran mix compile.yecc in 0ms
-> Running mix compile.leex --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside Exqlite.MixProject)
<- Ran mix compile.leex in 0ms
-> Running mix compile.erlang --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside Exqlite.MixProject)
<- Ran mix compile.erlang in 0ms
-> Running mix compile.elixir --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside Exqlite.MixProject)
Compiling 13 files (.ex)
<- Ran mix compile.elixir in 359ms
-> Running mix compile.app --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside Exqlite.MixProject)
Generated exqlite app
<- Ran mix compile.app in 1ms
<- Ran mix compile.all in 8311ms
<- Ran mix compile in 8312ms
==> playground
-> Running mix will_recompile (inside Playground.MixProject)
<- Ran mix will_recompile in 0ms
<- Ran mix deps.loadpaths in 11010ms
<- Ran mix loadpaths in 11011ms
-> Running mix compile.all (inside Playground.MixProject)
-> Running mix compile.yecc (inside Playground.MixProject)
<- Ran mix compile.yecc in 0ms
-> Running mix compile.leex (inside Playground.MixProject)
<- Ran mix compile.leex in 0ms
-> Running mix compile.erlang (inside Playground.MixProject)
<- Ran mix compile.erlang in 0ms
-> Running mix compile.elixir (inside Playground.MixProject)
Compiling 1 file (.ex)
<- Ran mix compile.elixir in 22ms
-> Running mix compile.app (inside Playground.MixProject)
Generated playground app
<- Ran mix compile.app in 1ms
<- Ran mix compile.all in 29ms
-> Running mix compile.protocols (inside Playground.MixProject)
<- Ran mix compile.protocols in 226ms
<- Ran mix compile in 11281ms
<- Ran mix app.config in 11282ms
<- Ran mix app.start in 11288ms
<- Ran mix run in 11290ms
Interactive Elixir (1.14.2) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> {:ok, conn} = Exqlite.Sqlite3.open(":memory:")
** (UndefinedFunctionError) function Exqlite.Sqlite3NIF.open/2 is undefined (module Exqlite.Sqlite3NIF is not available)
(exqlite 0.12.0) Exqlite.Sqlite3NIF.open(':memory:', 6)
iex:1: (file)
iex(1)>
16:44:34.039 [warning] The on_load function for module Elixir.Exqlite.Sqlite3NIF returned:
{:error,
{:load_failed,
'Failed to load NIF library c:/git/test-elixir/playground/_build/dev/lib/exqlite/priv/sqlite3_nif: \'Unspecified error\''}}
iex(1)>
Fixed via the instructions at https://github.com/riverrun/comeonin/issues/75 - a 64 bit NIF was needed.
That's strange, even when using the settings for a 64 bit compiler, a 32 bit DLL is generated.
Found a problem, sqlite3_nif.dll
is 32 bit, while erl.exe
is 64 bit.
@warmwaffles unfortunately, no change with 0.11.9 and a database filename:
iex(1)> {:ok, conn} = Exqlite.Sqlite3.open(":memory:")
** (UndefinedFunctionError) function Exqlite.Sqlite3NIF.open/2 is undefined (module Exqlite.Sqlite3NIF is not available)
(exqlite 0.11.9) Exqlite.Sqlite3NIF.open(':memory:', 6)
iex:1: (file)
iex(1)>
11:15:07.663 [warning] The on_load function for module Elixir.Exqlite.Sqlite3NIF returned:
{:error,
{:load_failed,
'Failed to load NIF library c:/git/test-elixir/playground/_build/dev/lib/exqlite/priv/sqlite3_nif: \'Unspecified error\''}}
iex(1)> {:ok, conn} = Exqlite.Sqlite3.open("test.db")
** (UndefinedFunctionError) function Exqlite.Sqlite3NIF.open/2 is undefined (module Exqlite.Sqlite3NIF is not available)
(exqlite 0.11.9) Exqlite.Sqlite3NIF.open('test.db', 6)
iex:1: (file)
11:15:14.219 [warning] The on_load function for module Elixir.Exqlite.Sqlite3NIF returned:
{:error,
{:load_failed,
'Failed to load NIF library c:/git/test-elixir/playground/_build/dev/lib/exqlite/priv/sqlite3_nif: \'Unspecified error\''}}
iex(1)> {:ok, conn} = Exqlite.Sqlite3.open("test.db")
11:15:41.770 [warning] The on_load function for module Elixir.Exqlite.Sqlite3NIF returned:
{:error,
{:load_failed,
'Failed to load NIF library c:/git/test-elixir/playground/_build/dev/lib/exqlite/priv/sqlite3_nif: \'Unspecified error\''}}
** (UndefinedFunctionError) function Exqlite.Sqlite3NIF.open/2 is undefined (module Exqlite.Sqlite3NIF is not available)
(exqlite 0.11.9) Exqlite.Sqlite3NIF.open('test.db', 6)
iex:1: (file)
iex(1)>
Using Windows 10, exqite appears to build correctly, but I get sqlite3_nif: Unspecified error
when trying to run {:ok, conn} = Exqlite.Sqlite3.open(":memory:")
c:\git\test-elixir\playground>mix deps.get
-> Running mix loadconfig (inside Playground.MixProject)
<- Ran mix loadconfig in 0ms
-> Running mix deps.get (inside Playground.MixProject)
-> Running mix archive.check (inside Playground.MixProject)
<- Ran mix archive.check in 0ms
Resolving Hex dependencies...
Resolution completed in 0.117s
New:
connection 1.1.0
db_connection 2.4.3
elixir_make 0.7.3
exqlite 0.12.0
telemetry 1.1.0
* Getting exqlite (Hex package)
Using locally cached package (c:/Users/Adam/.hex/packages/hexpm/exqlite-0.12.0.tar)
* Getting db_connection (Hex package)
Using locally cached package (c:/Users/Adam/.hex/packages/hexpm/db_connection-2.4.3.tar)
* Getting elixir_make (Hex package)
Using locally cached package (c:/Users/Adam/.hex/packages/hexpm/elixir_make-0.7.3.tar)
* Getting connection (Hex package)
Using locally cached package (c:/Users/Adam/.hex/packages/hexpm/connection-1.1.0.tar)
* Getting telemetry (Hex package)
Fetched package (https://repo.hex.pm/tarballs/telemetry-1.1.0.tar)
-> Running mix will_recompile (inside Playground.MixProject)
<- Ran mix will_recompile in 1ms
<- Ran mix deps.get in 1044ms
c:\git\test-elixir\playground>iex -S mix
-> Running mix loadconfig (inside Playground.MixProject)
<- Ran mix loadconfig in 0ms
-> Running mix run (inside Playground.MixProject)
-> Running mix app.start (inside Playground.MixProject)
-> Running mix app.config (inside Playground.MixProject)
-> Running mix compile (inside Playground.MixProject)
-> Running mix loadpaths (inside Playground.MixProject)
-> Running mix archive.check (inside Playground.MixProject)
<- Ran mix archive.check in 0ms
-> Running mix deps.loadpaths (inside Playground.MixProject)
-> Running mix deps.precompile (inside Playground.MixProject)
<- Ran mix deps.precompile in 2ms
==> connection
-> Running mix compile --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside Connection.Mixfile)
-> Running mix loadpaths --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside Connection.Mixfile)
<- Ran mix loadpaths in 0ms
-> Running mix compile.all --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside Connection.Mixfile)
-> Running mix compile.yecc --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside Connection.Mixfile)
<- Ran mix compile.yecc in 1ms
-> Running mix compile.leex --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside Connection.Mixfile)
<- Ran mix compile.leex in 0ms
-> Running mix compile.erlang --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside Connection.Mixfile)
<- Ran mix compile.erlang in 0ms
-> Running mix compile.elixir --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside Connection.Mixfile)
Compiling 1 file (.ex)
<- Ran mix compile.elixir in 194ms
-> Running mix compile.app --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside Connection.Mixfile)
Generated connection app
<- Ran mix compile.app in 3ms
<- Ran mix compile.all in 212ms
<- Ran mix compile in 213ms
===> Expanded command sequence to be run: []
===> Running provider: do
===> Expanded command sequence to be run: [app_discovery,{bare,compile}]
===> Running provider: app_discovery
===> Found top-level apps: [telemetry]
using config: [{src_dirs,["src"]},{lib_dirs,["apps/*","lib/*","."]}]
===> Running provider: {bare,compile}
===> Compile (untagged)
===> Running hooks for compile in app telemetry (c:/git/test-elixir/playground/deps/telemetry) with configuration:
===> {pre_hooks, []}.
===> Running hooks for erlc_compile in app telemetry (c:/git/test-elixir/playground/deps/telemetry) with configuration:
===> {pre_hooks, []}.
===> Analyzing applications...
===> Compiling telemetry
===> compile options: {erl_opts, [debug_info]}.
===> files to analyze ["c:/git/test-elixir/playground/deps/telemetry/src/telemetry_sup.erl",
"c:/git/test-elixir/playground/deps/telemetry/src/telemetry_handler_table.erl",
"c:/git/test-elixir/playground/deps/telemetry/src/telemetry_app.erl",
"c:/git/test-elixir/playground/deps/telemetry/src/telemetry.erl"]
===> Compiled telemetry_app.erl
===> Compiled telemetry_sup.erl
===> Compiled telemetry_handler_table.erl
===> Compiled telemetry.erl
===> Running hooks for erlc_compile in app telemetry (c:/git/test-elixir/playground/deps/telemetry) with configuration:
===> {post_hooks, []}.
===> Running hooks for app_compile in app telemetry (c:/git/test-elixir/playground/deps/telemetry) with configuration:
===> {pre_hooks, []}.
===> Running hooks for app_compile in app telemetry (c:/git/test-elixir/playground/deps/telemetry) with configuration:
===> {post_hooks, []}.
===> Running hooks for compile in app telemetry (c:/git/test-elixir/playground/deps/telemetry) with configuration:
===> {post_hooks, []}.
==> db_connection
-> Running mix compile --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside DBConnection.Mixfile)
-> Running mix loadpaths --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside DBConnection.Mixfile)
<- Ran mix loadpaths in 0ms
-> Running mix compile.all --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside DBConnection.Mixfile)
-> Running mix compile.yecc --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside DBConnection.Mixfile)
<- Ran mix compile.yecc in 0ms
-> Running mix compile.leex --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside DBConnection.Mixfile)
<- Ran mix compile.leex in 0ms
-> Running mix compile.erlang --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside DBConnection.Mixfile)
<- Ran mix compile.erlang in 0ms
-> Running mix compile.elixir --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside DBConnection.Mixfile)
Compiling 14 files (.ex)
<- Ran mix compile.elixir in 706ms
-> Running mix compile.app --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside DBConnection.Mixfile)
Generated db_connection app
<- Ran mix compile.app in 1ms
<- Ran mix compile.all in 723ms
<- Ran mix compile in 724ms
==> elixir_make
-> Running mix compile --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside ElixirMake.Mixfile)
-> Running mix loadpaths --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside ElixirMake.Mixfile)
<- Ran mix loadpaths in 0ms
-> Running mix compile.all --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside ElixirMake.Mixfile)
-> Running mix compile.yecc --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside ElixirMake.Mixfile)
<- Ran mix compile.yecc in 0ms
-> Running mix compile.leex --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside ElixirMake.Mixfile)
<- Ran mix compile.leex in 0ms
-> Running mix compile.erlang --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside ElixirMake.Mixfile)
<- Ran mix compile.erlang in 0ms
-> Running mix compile.elixir --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside ElixirMake.Mixfile)
Compiling 6 files (.ex)
<- Ran mix compile.elixir in 199ms
-> Running mix compile.app --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside ElixirMake.Mixfile)
Generated elixir_make app
<- Ran mix compile.app in 0ms
<- Ran mix compile.all in 222ms
<- Ran mix compile in 222ms
==> exqlite
-> Running mix compile --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside Exqlite.MixProject)
-> Running mix loadpaths --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside Exqlite.MixProject)
<- Ran mix loadpaths in 0ms
-> Running mix compile.all --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside Exqlite.MixProject)
-> Running mix compile.elixir_make --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside Exqlite.MixProject)
Microsoft (R) Program Maintenance Utility Version 14.34.31937.0
Copyright (C) Microsoft Corporation. All rights reserved.
del /f /q priv
Could Not Find c:\git\test-elixir\playground\deps\exqlite\priv
erl -noshell -s init stop -eval "io:setopts(standard_io, [{encoding, unicode}]), io:format(\"ERTS_INCLUDE_PATH=~ts/erts-~ts/include/\", [code:root_dir(), erlang:system_info(version)])." > Makefile.auto.win
nmake - -F Makefile.win priv\sqlite3_nif.dll
Microsoft (R) Program Maintenance Utility Version 14.34.31937.0
Copyright (C) Microsoft Corporation. All rights reserved.
if NOT EXIST "priv" mkdir "priv"
cl -I"c:/Program Files/Erlang OTP/usr/include" -DNDEBUG=1 -DSQLITE_OMIT_DEPRECATED=1 -DSQLITE_ENABLE_RTREE=1 -DSQLITE_ENABLE_RBU=1 -DSQLITE_ENABLE_MATH_FUNCTIONS=1 -DSQLITE_ENABLE_GEOPOLY=1 -DSQLITE_ENABLE_FTS5=1 -DSQLITE_ENABLE_FTS4=1 -DSQLITE_ENABLE_FTS3=1 -DENABLE_UPDATE_DELETE_LIMIT=1 -DENABLE_STAT4=1 -DENABLE_SOUNDEX=1 -DENABLE_LOAD_EXTENSION=1 -DENABLE_FTS3_PARENTHESIS=1 -DALLOW_COVERING_INDEX_SCAN=1 -DHAVE_USLEEP=1 -DSQLITE_DQS=0 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS=1 -DSQLITE_USE_URI=1 -DSQLITE_THREADSAFE=1 -Ic_src -EHsc -O2 -I"c:/Program Files/Erlang OTP/erts-13.0.4/include/" -LD -MD -Fepriv\sqlite3_nif.dll c_src\sqlite3.c c_src\sqlite3_nif.c
Microsoft (R) C/C++ Optimizing Compiler Version 19.34.31937 for x86
Copyright (C) Microsoft Corporation. All rights reserved.
sqlite3.c
sqlite3_nif.c
Generating Code...
Microsoft (R) Incremental Linker Version 14.34.31937.0
Copyright (C) Microsoft Corporation. All rights reserved.
/dll
/implib:priv\sqlite3_nif.lib
/out:priv\sqlite3_nif.dll
sqlite3.obj
sqlite3_nif.obj
Creating library priv\sqlite3_nif.lib and object priv\sqlite3_nif.exp
<- Ran mix compile.elixir_make in 7901ms
-> Running mix compile.yecc --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside Exqlite.MixProject)
<- Ran mix compile.yecc in 0ms
-> Running mix compile.leex --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside Exqlite.MixProject)
<- Ran mix compile.leex in 0ms
-> Running mix compile.erlang --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside Exqlite.MixProject)
<- Ran mix compile.erlang in 0ms
-> Running mix compile.elixir --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside Exqlite.MixProject)
Compiling 13 files (.ex)
<- Ran mix compile.elixir in 359ms
-> Running mix compile.app --from-mix-deps-compile --no-archives-check --no-warnings-as-errors (inside Exqlite.MixProject)
Generated exqlite app
<- Ran mix compile.app in 1ms
<- Ran mix compile.all in 8311ms
<- Ran mix compile in 8312ms
==> playground
-> Running mix will_recompile (inside Playground.MixProject)
<- Ran mix will_recompile in 0ms
<- Ran mix deps.loadpaths in 11010ms
<- Ran mix loadpaths in 11011ms
-> Running mix compile.all (inside Playground.MixProject)
-> Running mix compile.yecc (inside Playground.MixProject)
<- Ran mix compile.yecc in 0ms
-> Running mix compile.leex (inside Playground.MixProject)
<- Ran mix compile.leex in 0ms
-> Running mix compile.erlang (inside Playground.MixProject)
<- Ran mix compile.erlang in 0ms
-> Running mix compile.elixir (inside Playground.MixProject)
Compiling 1 file (.ex)
<- Ran mix compile.elixir in 22ms
-> Running mix compile.app (inside Playground.MixProject)
Generated playground app
<- Ran mix compile.app in 1ms
<- Ran mix compile.all in 29ms
-> Running mix compile.protocols (inside Playground.MixProject)
<- Ran mix compile.protocols in 226ms
<- Ran mix compile in 11281ms
<- Ran mix app.config in 11282ms
<- Ran mix app.start in 11288ms
<- Ran mix run in 11290ms
Interactive Elixir (1.14.2) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> {:ok, conn} = Exqlite.Sqlite3.open(":memory:")
** (UndefinedFunctionError) function Exqlite.Sqlite3NIF.open/2 is undefined (module Exqlite.Sqlite3NIF is not available)
(exqlite 0.12.0) Exqlite.Sqlite3NIF.open(':memory:', 6)
iex:1: (file)
iex(1)>
16:44:34.039 [warning] The on_load function for module Elixir.Exqlite.Sqlite3NIF returned:
{:error,
{:load_failed,
'Failed to load NIF library c:/git/test-elixir/playground/_build/dev/lib/exqlite/priv/sqlite3_nif: \'Unspecified error\''}}
iex(1)>