Win11下基于VS2022編譯SQLite3源碼的實現(xiàn)步驟
前言
因為編譯第三方庫GDAL源碼來使用 踩了很多坑,編譯SQLite3是其中之一 故此記錄一下完整的編譯流程 供后續(xù)使用。
提示:以下是本篇文章正文內(nèi)容,下面案例可供參考 
一、下載SQLite
SQLite 下載地址

下載紅框部分的3個文件 提示:這里有個 sglite-autoconf-3420000.tar.gz 是免編譯版,想省事就下載這個,但我自己用這個老是編譯不過 所以我這里不推薦這個了 
下載完畢后 是這個三個文件:

將三個壓縮包解壓放到一個新建的文件夾中,解壓文件后顯示如下結(jié)構(gòu):

【sqlite3420000】文件夾是自己創(chuàng)建的 內(nèi)容是上面三個壓縮包的文件
二、配置SQLite
1.打開vs 2022
1.選擇創(chuàng)建新項目

選擇空項目

這里路徑可以直接放到下載的sqlite的目錄下


填好項目名稱 項目路徑后 然后點擊創(chuàng)建

2.項目添加文件
接著在 頭文件 和 源文件兩處 右鍵-> 添加-> 現(xiàn)有項 引用對應(yīng)sqlite文件 如下所示:


分別將 “sqlite3.h”、“sqlite3ext.h”、“sqlite3.c”、"sqlite3.def"共四個文件放入對應(yīng)的文件夾后,接著
3.修改sqlite3.def文件
打開sqlite3.def 在文件的最后 添加如下內(nèi)容
sqlite3_unlock_notify

然后保存,保存之后在項目點擊右鍵->屬性:
4.設(shè)置項目屬性

打開屬性設(shè)置后 先將頂部"配置"改為"所有配置",“平臺"改為"所有平臺”。

然后在左側(cè)選擇"配置屬性"->“C/C++”->“預(yù)處理器”,右側(cè)"預(yù)處理器定義"點擊最右邊的下拉后選"編輯",在彈出的窗口中,把"<不同選項>"改為下面的內(nèi)容的值,然后點確定。
_USRDLL SQLITE_ENABLE_RTREE SQLITE_ENABLE_COLUMN_METADATA SQLITE_ENABLE_FTS5 SQLITE_ENABLE_UNLOCK_NOTIFY


操作完上面步驟后緊接著在左側(cè)選擇"配置屬性"->“鏈接器”->“輸入”,右側(cè)"模塊定義文件"點擊最右邊的下拉后選"編輯",在彈出的窗口中,輸入sqlite3.def后點擊確定。

最后一步在左側(cè)選擇"配置屬性"->“常規(guī)”,右側(cè)"配置類型"改為"靜態(tài)庫(.lib)"后點擊應(yīng)用->確定。


2.編譯SQLite
上述配置完畢后就可以開始編譯SQLite了在"解決方案配置"為"Release",“解決方案平臺"選項,32位的選"x86”,64位選"x64",

然后右鍵sqlite項目->“生成”,在項目位置的Release文件夾下會生成sqlite.lib


顯示上述內(nèi)容即生成成功了,在項目文件的 x64->Release下能看到生成的lib

3.規(guī)整文件
生成后lib后 整理一下文件,在一步驟生成的【sqlite3420000】目錄下新建【bin】【include】【lib】三個目錄,然后分別把對應(yīng)文件拖到目錄下 如圖所示:
【bin】目錄存放生成的sqlite3.exe文件

【include】目錄存放生成的sqlite3.h,sqlite3ext.h文件

【lib】目錄存放剛剛生成的.lib文件

到這里就結(jié)束啦!
總結(jié)
到此這篇關(guān)于Win11下基于VS2022編譯SQLite3源碼的實現(xiàn)步驟的文章就介紹到這了,更多相關(guān)VS2022編譯SQLite3內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
 System.Data.SQLite 數(shù)據(jù)庫詳細介紹
System.Data.SQLite是SQLite的加強版,它可以無需.NET Framework支持,由于它內(nèi)部包含了一個ADO.NET 2.0引擎,所以.NET開發(fā)人員可以利用System.Data.SQLite方便地開發(fā).NET程序。2011-02-02
 SQLite教程(五):索引和數(shù)據(jù)分析/清理
這篇文章主要介紹了SQLite教程(五):索引和數(shù)據(jù)分析/清理,本文講解了創(chuàng)建索引、刪除索引、重建索引、數(shù)據(jù)分析、數(shù)據(jù)清理等內(nèi)容,需要的朋友可以參考下2015-05-05
 SQLite學(xué)習(xí)手冊(SQLite在線備份)
在SQLite中提供了一組用于在線數(shù)據(jù)庫備份的APIs函數(shù)(C接口),可以很好的解決上述方法存在的不足。通過該組函數(shù),可以將源數(shù)據(jù)庫中的內(nèi)容拷貝到另一個數(shù)據(jù)庫,同時覆蓋目標(biāo)數(shù)據(jù)庫中的數(shù)據(jù)2013-12-12
 sqlite3自動插入創(chuàng)建時間和更新時間的功能實現(xiàn)
最近在記錄一些簡單的結(jié)構(gòu)化日志信息時,用到了sqlite3數(shù)據(jù)庫(保存的信息比較簡單,用Mysql,SQL Server,Postgres這些數(shù)據(jù)庫有點小題大做),這次使用,希望sqlite3也能提供幾個基本的功能,自動插入創(chuàng)建時間和更新時間,需要的朋友可以參考下2024-06-06

