sqlite3.exe - 无法找到入口
无法定位程序输入点 AcquireSRWLockExclusive 于动态链接库 KERNEL32.dl 上。
SQLite 3.54.0 已经正式放弃支持 Windows XP,在 Windows XP 上运行 SQLite 3.54.0+ 会因为操作系统不支持 SRW 锁(Slim Reader/Writer Lock)而报上面这个错误。Drop support for WindowsXP and earlier Windows versions, including WindowsCE. SQLite for Windows now requires Windows Vista (circa 2007) or later.
SQLite 3.53.4 是最后一个支持 Windows XP 的版本。
SQLite 官方从 3.44.0 开始就不再提供 32 位 Windows 预编译可执行文件下载,也就是不提供 exe 只提供 dll 下载,而且绝大多数 Windows XP 都是 32 位操作系统,要在 Windows XP 上使用比 3.43.2 版本更新的 SQLite 就需要自己编译。
可以拿 Ubuntu 来编译 Windows 版本的 SQLite,操作步骤如下。
一、安装交叉编译器- apt -y update
- apt -y install gcc-mingw-w64-i686 binutils-mingw-w64-i686
复制代码 二、下载 SQLite 3.53.4 源码(SHA3-256=628a44cfe82c66aed1ccbbe85a562d2e33ebe64b3288981ed76285612227934e)
三、用 7-zip 或任何一款支持的软件解包下载到的文件 sqlite-amalgamation-3530400.zip
四、进入解包后的源码所在的目录 sqlite-amalgamation-3530400
五、编译生成可执行文件- i686-w64-mingw32-gcc -O2 -static-libgcc -DSQLITE_OMIT_UTF8_CONSOLE -DSQLITE_ENABLE_FTS5 shell.c sqlite3.c -o sqlite3.exe
复制代码 六、拷贝生成的 sqlite3.exe 到 Windows XP 上使用。
一些说明:
一、SQLite 在 Windows XP 上没有任何输出,只有 . 命令正常输出,编译时加上 -DSQLITE_OMIT_UTF8_CONSOLE 大概率能解决问题。为现代 Windows 编译 SQLite 不需要加这个选项。
二、不是一定要使用 3.53.4 这个版本的 SQLite 源码,也可以使用更早版本的源码。 |
|