crystal-lang / crystal

The Crystal Programming Language
https://crystal-lang.org
Apache License 2.0
19.21k stars 1.61k forks source link

Package installation fails on Windows due to missing SQLite3 .lib files #14701

Closed Losses closed 3 weeks ago

Losses commented 3 weeks ago

I am trying to install Micrate on a Windows machine, but I am encountering an issue related to the SQLite3 library. The error message I receive is as follows:

I: Building: micrate
E: Error target micrate failed to compile:
Error: Cannot locate the .lib files for the following libraries: sqlite3

Steps to Reproduce:

  1. Set up a Windows environment with Crystal Lang installed.
  2. Attempt to install Micrate using the standard installation instructions.
  3. Observe the error message related to the SQLite3 library.

Expected Behavior: Micrate should install successfully on a Windows environment without issues related to locating the SQLite3 library.

Actual Behavior: The installation fails with an error indicating that it cannot locate the .lib files for the SQLite3 library.

Environment:

Workaround: I followed the instructions from this gist to compile the sqlite3.lib file and placed it in the lib directory of the Crystal executable.

Suggestion: It seems that including the sqlite3.lib file in the Crystal Windows release could help avoid this issue for other users. Including precompiled .lib files for common libraries like SQLite3 in the Crystal distribution for Windows would simplify the setup process and prevent similar issues in the future.

Thank you for your attention to this matter.

straight-shoota commented 3 weeks ago

The official Windows release package contains libraries required by the standard libraries. But that's as far as we can go for convenience for convenience. Packaging additional dependencies is an additional effort outside the scope of the Crystal project.

This might be considered by downstream package maintainers, of course.

beta-ziliani commented 3 weeks ago

As mentioned, this is not in the scope of the main project, so I'm closing it.