sqlite3的官網(wǎng)介紹地址: https://www.sqlite.org/index.html
sqlite3在VS項(xiàng)目上的2種使用方式
sqlite3在VS項(xiàng)目上的使用有2種方式,一種是把sqlite3的源代碼直接放入工程,和自己開發(fā)的代碼一起編譯使用。另一種是把sqlite3先編譯成庫(kù)文件,通過(guò)靜態(tài)庫(kù)或者動(dòng)態(tài)庫(kù)調(diào)用的方式在項(xiàng)目工程中使用。
方式1:源代碼直接加入當(dāng)前工程編譯
該使用方式操作最簡(jiǎn)單,最有利于sqlite3數(shù)據(jù)庫(kù)熟悉和研究的方式。 只需要把sqlite3.c和sqlite3.h分別加入工程, 然后在需要調(diào)用的cpp文件上導(dǎo)入sqlite3.h文件后,就可以使用其中的sqlite數(shù)據(jù)庫(kù)了。
#include <stdio.h>
#include "sqlite3.h"
int main()
{
const char* tt = sqlite3_libversion();
return 0;
}
sqlite3在官網(wǎng)上提供了源碼下載,推薦的源碼是all_in_one的方式,這種方式在官網(wǎng)上稱作Amalgamation source code。 所有的源代碼都集中在一個(gè)c文件sqlite3.c 文件中。
https://www.sqlite.org/download.html
方式2:源代碼先編譯成庫(kù),然后把庫(kù)加入當(dāng)前工程使用
sqlite3在VS2019上的dll編譯與使用
在VS的工程項(xiàng)目中要使用sqlite3作為數(shù)據(jù)庫(kù),需要使用源代碼編譯出一個(gè)動(dòng)態(tài)鏈接庫(kù)dll文件,然后在需要的工程中導(dǎo)入并使用該dll庫(kù)。
這里需要簡(jiǎn)單先介紹下,源文件,dll庫(kù),lib庫(kù),h文件和工程之間的關(guān)系。https://blog.csdn.net/Aidam_Bo/article/details/82014241
一文對(duì)上述的關(guān)系描述的比較清楚了,形象的說(shuō),h頭文件和lib是dll的索引,程序編譯的時(shí)候需要。編譯時(shí),并不是把dll的實(shí)際功能編譯進(jìn)程序,而只是根據(jù)索引,在程序需要的地方打上調(diào)用入口標(biāo)記。這種編譯方式使得程序本事很小,需要調(diào)用某個(gè)功能的時(shí)候,根據(jù)編譯時(shí)的調(diào)用入口標(biāo)記,可以調(diào)用程序外部的動(dòng)態(tài)庫(kù)dll實(shí)現(xiàn)。 這種方式成為動(dòng)態(tài)庫(kù)編譯方式。 還有一種叫靜態(tài)庫(kù)編譯方式,此時(shí)編譯系統(tǒng)需要靜態(tài)庫(kù)的頭文件和lib文件。靜態(tài)庫(kù)的lib文件中已經(jīng)包含了函數(shù)實(shí)現(xiàn),已經(jīng)不是簡(jiǎn)單的索引了,當(dāng)程序編譯的時(shí)候,系統(tǒng)會(huì)把lib中的函數(shù)實(shí)現(xiàn)編譯到程序中,這樣程序的體積會(huì)相對(duì)大一些。
sqlite3提供的代碼是庫(kù)代碼,可以編譯成動(dòng)態(tài)庫(kù)也可以編譯成靜態(tài)庫(kù)。新建的VS工程為了使用sqlite3,就需要先把sqlie3的源碼編譯成動(dòng)態(tài)庫(kù)或者靜態(tài)庫(kù),然后在工程中加入編譯。
具體過(guò)程如下
1 下載源碼
https://www.sqlite.org/download.html
頁(yè)面中下載sqlite-amalgamation-3290000.zip
解壓后,會(huì)得到sqlite3.c sqlite3.h
2 創(chuàng)建庫(kù)工程(工程名這里定義為sqlite3)
把sqlite3.c sqlite3.h加入工程,編譯后,debug目錄下會(huì)生成sqlite3.dll
此時(shí)并沒有生成.lib文件
https://blog.csdn.net/wyq429703159/article/details/85164490
在所建工程上單擊鼠標(biāo)右鍵,在彈出的右鍵菜單中選擇“添加-->新建項(xiàng)....---->模塊定義文件”,在該模塊定義文件中寫導(dǎo)出函數(shù)表,單擊確定。然后在所建工程上單擊鼠標(biāo)右鍵,選擇“屬性”菜單,在彈出的屬性對(duì)話框中“鏈接器-->輸入-->模塊定義文件”中填寫剛才定義的def文件,然后再重新編譯即可生成LIB文件。