秋·风

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

在 MinGW64 环境下编译 SQLite 可以分为两种方式:生成动态链接库(DLL) 或 生成静态库(.a 文件)
以下是详细步骤:


一. 准备工作

1、下载 SQLite 源码
访问 SQLite 官网,下载源码。
加密版SQLite3MultipleCiphers下载网址:
https://github.com/utelle/SQLite3MultipleCiphers/
2、安装 MinGW-w64

确保已正确安装 MinGW-w64,并配置好环境变量(gccar 等命令可用)。


二. 编译静态库(.a 文件)

静态库适合直接链接到程序中,无需额外依赖 DLL。

1、进入 SQLite 源码目录(包含 sqlite3.c 和 sqlite3.h 的目录)。

2、编译目标文件
1)运行以下命令生成 .o 目标文件:

gcc -c -O2 -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_JSON1 sqlite3.c -o sqlite3.o

编译SQLite3MultipleCiphers版本改为:

gcc -c -O2 -maes -msse4.1 -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_JSON1 sqlite3mc.c -o sqlite3mc.o 

-O2: 启用优化。
-DSQLITE_ENABLE_FTS4: 启用全文搜索功能(可选)
-DSQLITE_ENABLE_JSON1: 启用 JSON 扩展(可选)
-maes:启用AES指令集支持
-msse4.1: 启用SSE4.1 指令集

2)生成静态库
使用 ar 工具将目标文件打包为静态库:

ar rcs libsqlite3.a sqlite3.o

生成的 libsqlite3.a 即为静态库。


三、 编译动态链接库(DLL)
运行以下命令生成 DLL 文件:

gcc -shared -O2 -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_JSON1 sqlite3.c -o sqlite3.dll

编译SQLite3MultipleCiphers版本改为:

gcc -shared -O2 -maes -msse4.1 -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_JSON1 sqlite3mc.c -o sqlite3mc.dll

-shared: 指定生成动态库。
-maes:启用AES指令集支持
-msse4.1: 启用SSE4.1 指令集

生成的 sqlite3.dll 可直接用于程序动态链接。

posted on 2025-03-13 15:05  秋·风  阅读(301)  评论(0)    收藏  举报