Win11下基于VS2022編譯SQLite3源碼的實(shí)現(xiàn)步驟
前言
因?yàn)榫幾g第三方庫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)建新項(xiàng)目
選擇空項(xiàng)目
這里路徑可以直接放到下載的sqlite的目錄下
填好項(xiàng)目名稱 項(xiàng)目路徑后 然后點(diǎn)擊創(chuàng)建
2.項(xiàng)目添加文件
接著在 頭文件 和 源文件兩處 右鍵-> 添加-> 現(xiàn)有項(xiàng) 引用對應(yīng)sqlite文件 如下所示:
分別將 “sqlite3.h”、“sqlite3ext.h”、“sqlite3.c”、"sqlite3.def"共四個文件放入對應(yīng)的文件夾后,接著
3.修改sqlite3.def文件
打開sqlite3.def 在文件的最后 添加如下內(nèi)容
sqlite3_unlock_notify
然后保存,保存之后在項(xiàng)目點(diǎn)擊右鍵->屬性:
4.設(shè)置項(xiàng)目屬性
打開屬性設(shè)置后 先將頂部"配置"改為"所有配置",“平臺"改為"所有平臺”。
然后在左側(cè)選擇"配置屬性"->“C/C++”->“預(yù)處理器”,右側(cè)"預(yù)處理器定義"點(diǎn)擊最右邊的下拉后選"編輯",在彈出的窗口中,把"<不同選項(xiàng)>"改為下面的內(nèi)容的值,然后點(diǎn)確定。
_USRDLL SQLITE_ENABLE_RTREE SQLITE_ENABLE_COLUMN_METADATA SQLITE_ENABLE_FTS5 SQLITE_ENABLE_UNLOCK_NOTIFY
操作完上面步驟后緊接著在左側(cè)選擇"配置屬性"->“鏈接器”->“輸入”,右側(cè)"模塊定義文件"點(diǎn)擊最右邊的下拉后選"編輯",在彈出的窗口中,輸入sqlite3.def后點(diǎn)擊確定。
最后一步在左側(cè)選擇"配置屬性"->“常規(guī)”,右側(cè)"配置類型"改為"靜態(tài)庫(.lib)"后點(diǎn)擊應(yīng)用->確定。
2.編譯SQLite
上述配置完畢后就可以開始編譯SQLite了在"解決方案配置"為"Release",“解決方案平臺"選項(xiàng),32位的選"x86”,64位選"x64",
然后右鍵sqlite項(xiàng)目->“生成”,在項(xiàng)目位置的Release文件夾下會生成sqlite.lib
顯示上述內(nèi)容即生成成功了,在項(xiàng)目文件的 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源碼的實(shí)現(xiàn)步驟的文章就介紹到這了,更多相關(guān)VS2022編譯SQLite3內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
System.Data.SQLite 數(shù)據(jù)庫詳細(xì)介紹
System.Data.SQLite是SQLite的加強(qiáng)版,它可以無需.NET Framework支持,由于它內(nèi)部包含了一個ADO.NET 2.0引擎,所以.NET開發(fā)人員可以利用System.Data.SQLite方便地開發(fā).NET程序。2011-02-02SQLite教程(十三):C語言編程實(shí)例代碼(1)
這篇文章主要介紹了SQLite教程(十三):C語言編程實(shí)例代碼(1),本文講解了獲取表的Schema信息、動態(tài)創(chuàng)建表、刪除該表、常規(guī)數(shù)據(jù)插入、創(chuàng)建測試數(shù)據(jù)表、刪除測試表等內(nèi)容,需要的朋友可以參考下2015-05-05SQLite教程(五):索引和數(shù)據(jù)分析/清理
這篇文章主要介紹了SQLite教程(五):索引和數(shù)據(jù)分析/清理,本文講解了創(chuàng)建索引、刪除索引、重建索引、數(shù)據(jù)分析、數(shù)據(jù)清理等內(nèi)容,需要的朋友可以參考下2015-05-05SQLite學(xué)習(xí)手冊(SQLite在線備份)
在SQLite中提供了一組用于在線數(shù)據(jù)庫備份的APIs函數(shù)(C接口),可以很好的解決上述方法存在的不足。通過該組函數(shù),可以將源數(shù)據(jù)庫中的內(nèi)容拷貝到另一個數(shù)據(jù)庫,同時覆蓋目標(biāo)數(shù)據(jù)庫中的數(shù)據(jù)2013-12-12sqlite3自動插入創(chuàng)建時間和更新時間的功能實(shí)現(xiàn)
最近在記錄一些簡單的結(jié)構(gòu)化日志信息時,用到了sqlite3數(shù)據(jù)庫(保存的信息比較簡單,用Mysql,SQL Server,Postgres這些數(shù)據(jù)庫有點(diǎn)小題大做),這次使用,希望sqlite3也能提供幾個基本的功能,自動插入創(chuàng)建時間和更新時間,需要的朋友可以參考下2024-06-06