Precompiled Binaries for Windows (32 bit) - Please bring it back!
(1) By anonymous on 2023-11-01 14:55:12 [link] [source]
As of SQLite 3.44, the 32 bit version of precompiled Windows binaries seem to be no longer available at https://sqlite.org/download.html . I understand that 32-bit Windows is essentially dead, but this is not the case for 32 bit apps, which are happily running under 64 bit Windows. I am a software developer, and my development toolchain produces 32 bit Windows apps, and I cannot easily migrate to producing 64 bit apps instead. As my apps are 32 bit, they can only utilize 32 bit version of SQLite library. Please bring back the Precompiled Binaries for Windows (32 bit).
(2) By Larry Brasfield (larrybr) on 2023-11-01 16:02:40 in reply to 1 [link] [source]
This should not be taken as an outright rejection of your request.
The view among SQLite developers is that most people who would want 32-bit binaries would be developers who already had the tools and wherewithal to build the CLI and DLL.
Obviously, you are building something that links against the 32-bit library. Are you aware of how easy it is to build the SQLite CLI and library or DLL?
(3) By Richard Hipp (drh) on 2023-11-01 18:31:44 in reply to 2 [link] [source]
Here is how to build the 32-bit DLL yourself:
Download the source tree. Either clone the Fossil repo or just grab a tarball of the release check-in, which ever works easiest for you.
Bring up an "x86 Native Tools Command Prompt" window.
Move to the top-level of the source tree.
Copy/paste the following command:
nmake /f Makefile.msc sqlite3.dll USE_NATIVE_LIBPATHS=1 "OPTS=-DSQLITE_ENABLE_FTS3=1 -DSQLITE_ENABLE_FTS4=1 -DSQLITE_ENABLE_FTS5=1 -DSQLITE_ENABLE_RTREE=1 -DSQLITE_ENABLE_JSON1=1 -DSQLITE_ENABLE_GEOPOLY=1 -DSQLITE_ENABLE_SESSION=1 -DSQLITE_ENABLE_PREUPDATE_HOOK=1 -DSQLITE_ENABLE_SERIALIZE=1 -DSQLITE_ENABLE_MATH_FUNCTIONS=1"
(4) By anonymous on 2023-11-01 19:12:52 in reply to 3 [link] [source]
Thank you for the instructions! I will definitely try it.
(5) By Len Chisholm (LurkingKiwi) on 2023-11-01 22:16:24 in reply to 3 [link] [source]
That assumes one has an MSVC installation and all the support utilities (TCL etc) on ones PC. As a 32-bit Delphi developer I don't.
(6.1) By Larry Brasfield (larrybr) on 2023-11-02 02:57:33 edited from 6.0 in reply to 5 [source]
I respond merely to correct factual error and clarify a (likely unintended) misleading implication.
That assumes one has an MSVC installation and all the support utilities (TCL etc) on ones PC. As a 32-bit Delphi developer I don't.
Yes, Richard's compiler invocation is specifically for MSVC (of semi-recent vintage.) More on that later.
When building with the amalgamation, there is no need for any tools beyond a C compiler.
Numerous C compilers are available for the Windows platform. Only one is known as "MSVC", and it is not free for commercial development. The GCC (Gnu Compiler Collection) toolset is freely available, of very high quality, and very popular. (It is used extensively in the SQLite project.) Digital Mars has made a good one freely available for many years. (Thanks, Walter!)
The SQLite library and CLI are often built with gcc, for all supported platforms, including Windows.
Obviously, the invocation for other compilers will be slightly different.
I am not taking the position that no 32-bit images for Windows will be built. But I mean to put the kibosh on the notion that doing such a build is hard or even a real project.1
(Appended via edit:)
Here is how to get the 32-bit gcc compiler to make the 32-bit SQLite DLL:
set FLAGS1=-DSQLITE_ENABLE_FTS3=1 -DSQLITE_ENABLE_FTS4=1 -DSQLITE_ENABLE_FTS5=1
set FLAGS2=-DSQLITE_ENABLE_RTREE=1 -DSQLITE_ENABLE_JSON1=1 -DSQLITE_ENABLE_GEOPOLY=1
set FLAGS3=-DSQLITE_ENABLE_SESSION=1 -DSQLITE_ENABLE_PREUPDATE_HOOK=1 -DSQLITE_ENABLE_SERIALIZE=1
set FLAGS4=-DSQLITE_ENABLE_MATH_FUNCTIONS=1
set FLAGS=%FLAGS1% %FLAGS2% %FLAGS3% %FLAGS4%
gcc -O2 -march=i686 -shared -I. %FLAGS% -o sqlite3.dll sqlite3.c
, provided that gcc's bin directory is in the PATH environment variable.
- ^ When I started building and using non-mainframe computers, I never considered them real until I had a C compiler, assembler and linker running on them. (Now, those functions are done by the gcc and CL.exe drivers.) Obtaining and using a good C compiler has never been easier than it is now.