日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢(xún)客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

概述

“最新版GDAL源碼下載 ”一文中,我們?yōu)榇蠹曳窒砹俗钚掳姹镜腉DAL源碼,而GDAL是需要依賴(lài)PROJ投影轉(zhuǎn)換庫(kù)的。

因此,在最新版投影轉(zhuǎn)換工具PROJ源碼 ”一文中,我們又為大家分享了PROJ的源碼,如果你對(duì)PROJ源碼進(jìn)行編譯,會(huì)發(fā)現(xiàn)它會(huì)需要SQLite的支持。

這里,我們?cè)贋榇蠹曳窒鞸QLite的源碼下載與編譯的方法,你可以通過(guò)關(guān)注微信公眾號(hào)“水經(jīng)注GIS”并回復(fù)“SQLite”獲取最新版本的SQLite源碼與基于VS2015的編譯工程文件。

什么是SQLite?

SQLite是一個(gè)進(jìn)程庫(kù),實(shí)現(xiàn)了一個(gè)自包含的,無(wú)服務(wù)器,零配置及事務(wù)性的SQL數(shù)據(jù)庫(kù)引擎。

SQLite的源代碼是公開(kāi)的,因此可以免費(fèi)用于任何目的,無(wú)論是否是商業(yè)目的。

SQLite是世界上部署最廣泛的數(shù)據(jù)庫(kù),其應(yīng)用程序數(shù)量超出我們的想象,其中包括Adobe公司、Airbus公司、FaceBook、微軟、蘋(píng)果和谷歌等世界知名企業(yè),SQLite數(shù)據(jù)庫(kù)文件也是美國(guó)國(guó)會(huì)圖書(shū)館推薦的存儲(chǔ)格式。

SQLite是嵌入式SQL數(shù)據(jù)庫(kù)引擎,與大多數(shù)其他SQL數(shù)據(jù)庫(kù)不同,SQLite沒(méi)有單獨(dú)的服務(wù)器進(jìn)程。

SQLite直接讀取和寫(xiě)入普通磁盤(pán)文件,具有多個(gè)表、索引、觸發(fā)器和視圖的完整SQL數(shù)據(jù)庫(kù)包含在單個(gè)磁盤(pán)文件中。

數(shù)據(jù)庫(kù)文件格式是跨平臺(tái)的,因此可以在32位和64位系統(tǒng)之間或在big-endian和 little-endian 體系結(jié)構(gòu)之間自由復(fù)制數(shù)據(jù)庫(kù),這些功能使SQLite成為應(yīng)用程序文件格式的流行選擇。

SQLite是一個(gè)緊湊的庫(kù),啟用所有功能后,庫(kù)大小可以小于600KB,具體取決于目標(biāo)平臺(tái)和編譯器優(yōu)化的設(shè)置。

SQLite在內(nèi)存越大的情況下運(yùn)行速度就越快,即使在低內(nèi)存環(huán)境下,性能通常也相當(dāng)不錯(cuò),甚至可能會(huì)比直接通過(guò)系統(tǒng)I/O讀取更快。

如何下載最新版SQLite源碼

最新版本的SQLite源碼可以到官方網(wǎng)站下載,在官方網(wǎng)站的第一項(xiàng)下載鏈接即為源碼,如下圖所示。

新版SQLite源碼下載與編譯

 

SQLite官網(wǎng)

另外,還需要下載模塊定義文件sqlite3.def,否則無(wú)法生成sqlite3.lib庫(kù),如下圖所示。

新版SQLite源碼下載與編譯

 

下載預(yù)編譯文件

為了便于使用,可以把源碼和預(yù)編譯文件的32位與64位版本都下載下來(lái),如下圖所示。

新版SQLite源碼下載與編譯

 

源碼文件壓縮包

將文件進(jìn)行解壓,根據(jù)實(shí)際需要,預(yù)編譯文件可以選擇32位或64位版本,最后將源碼文件匯總到一個(gè)目錄中備用,如下圖所示。

新版SQLite源碼下載與編譯

源碼文件

以上準(zhǔn)備工作就緒之后,接下來(lái)就可以對(duì)源碼進(jìn)行編輯了。

如何基于VS2015編譯SQLite源碼

我們基于VS2015對(duì)SQLite源碼進(jìn)行編譯,如果你還沒(méi)有任何編譯工具,請(qǐng)參閱“Visual Studio 2015 安裝教程(附安裝包)”一文部署安裝編譯環(huán)境。

在VS2015中新建一個(gè)名為“sqlite3”的Win32項(xiàng)目,如下圖所示。

新版SQLite源碼下載與編譯

新建Win32項(xiàng)目

點(diǎn)擊下一步繼續(xù),然后在應(yīng)用程序設(shè)置中選擇“DLL”和“空項(xiàng)目”,如下圖所示。

新版SQLite源碼下載與編譯

應(yīng)用程序設(shè)置

項(xiàng)目新建完成后,將之前準(zhǔn)備的源碼文件復(fù)制到工程目錄,如下圖所示。

新版SQLite源碼下載與編譯

源代碼準(zhǔn)備

通過(guò)添加現(xiàn)有項(xiàng)功能,將頭文件sqlite.h和sqlite3ext.h添加到工程中,如下圖所示。

新版SQLite源碼下載與編譯

導(dǎo)入源碼頭文件

另外,也需要將shell.c、sqlite3.c和sqlite3.def添加到源文件中,如下圖所示。

新版SQLite源碼下載與編譯

導(dǎo)入源碼完成

現(xiàn)在如果直接編譯工程,則不會(huì)生成sqlite3.lib庫(kù)文件,因此需要在項(xiàng)目屬性中設(shè)置sqlite3.def模塊定義文件,如下圖所示。

新版SQLite源碼下載與編譯

配置模塊定義文件

現(xiàn)在將源碼進(jìn)行編輯之后,會(huì)生成許多錯(cuò)誤提示:

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào)
sqlite3_column_database_name

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào)
sqlite3_column_database_name16

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào)
sqlite3_column_origin_name

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào)
sqlite3_column_origin_name16

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào) sqlite3_column_table_name

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào)
sqlite3_column_table_name16

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào) sqlite3_deserialize

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào)
sqlite3_fts3_may_be_corrupt

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào)
sqlite3_fts5_may_be_corrupt

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào) sqlite3_preupdate_count

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào) sqlite3_preupdate_depth

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào) sqlite3_preupdate_hook

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào) sqlite3_preupdate_new

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào) sqlite3_preupdate_old

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào)
sqlite3_rtree_geometry_callback

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào)
sqlite3_rtree_query_callback

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào) sqlite3_serialize

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào) sqlite3changegroup_add

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào)
sqlite3changegroup_add_strm

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào) sqlite3changegroup_delete

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào) sqlite3changegroup_new

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào) sqlite3changegroup_output

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào)
sqlite3changegroup_output_strm

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào) sqlite3changeset_Apply

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào)
sqlite3changeset_apply_strm

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào) sqlite3changeset_apply_v2

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào)
sqlite3changeset_apply_v2_strm

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào) sqlite3changeset_concat

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào)
sqlite3changeset_concat_strm

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào) sqlite3changeset_conflict

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào) sqlite3changeset_finalize

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào)
sqlite3changeset_fk_conflicts

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào) sqlite3changeset_invert

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào)
sqlite3changeset_invert_strm

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào) sqlite3changeset_new

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào) sqlite3changeset_next

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào) sqlite3changeset_old

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào) sqlite3changeset_op

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào) sqlite3changeset_pk

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào) sqlite3changeset_start

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào)
sqlite3changeset_start_strm

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào) sqlite3changeset_start_v2

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào)
sqlite3changeset_start_v2_strm

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào) sqlite3rebaser_configure

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào) sqlite3rebaser_create

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào) sqlite3rebaser_delete

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào) sqlite3rebaser_rebase

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào)
sqlite3rebaser_rebase_strm

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào) sqlite3session_attach

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào) sqlite3session_changeset

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào)
sqlite3session_changeset_strm

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào) sqlite3session_config

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào) sqlite3session_create

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào) sqlite3session_delete

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào) sqlite3session_diff

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào) sqlite3session_enable

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào) sqlite3session_indirect

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào) sqlite3session_isempty

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào)
sqlite3session_memory_used

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào) sqlite3session_patchset

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào)
sqlite3session_patchset_strm

1>sqlite3.def : error LNK2001: 無(wú)法解析的外部符號(hào)
sqlite3session_table_filter

生成錯(cuò)誤的原因,是因?yàn)樵趕qlite3.def中定義的函數(shù)在源碼中默認(rèn)沒(méi)有導(dǎo)出,需要在工程屬性中添加以下預(yù)處理定義,如下所示。

SQLITE_CORE

SQLITE_EXPORTS

SQLITE_ENABLE_FTS3

SQLITE_ENABLE_FTS5

SQLITE_ENABLE_RTREE

SQLITE_ENABLE_COLUMN_METADATA

SQLITE_ENABLE_SESSION

SQLITE_ENABLE_PREUPDATE_HOOK

SQLITE_ENABLE_DESERIALIZE

新版SQLite源碼下載與編譯

添加宏定義

只要上述配置正確,無(wú)論是在Debug還是Release版本下都可以編譯成功,如下圖所示。

新版SQLite源碼下載與編譯

編譯成功

編譯成功后,就可以在源碼工程的Debug或Release目錄中找到sqlite3.dll和sqlite3.lib文件,如下圖所示。

新版SQLite源碼下載與編譯

編譯結(jié)果

現(xiàn)在,我們將下載的源碼文件壓縮包,編譯成功的工程源碼整理到了一個(gè)目錄中,如下圖所示。

新版SQLite源碼下載與編譯

分享資料整理

為了方便分享,我們將上述整理好的文件打包上傳到了百度網(wǎng)盤(pán)中,請(qǐng)通過(guò)關(guān)注微信公眾號(hào)“水經(jīng)注GIS”,然后在后臺(tái)回復(fù)“SQLite”可獲取下載地址。

總結(jié)

SQLite代碼庫(kù)由一支全職從事SQLite工作的國(guó)際開(kāi)發(fā)人員團(tuán)隊(duì)支持,以持續(xù)擴(kuò)展SQLite的功能并增強(qiáng)其可靠性和性能,同時(shí)保持與已發(fā)布的接口規(guī)范,以及SQL語(yǔ)法和數(shù)據(jù)庫(kù)文件格式的向后兼容性。

最后,如果你在SQLite源碼編譯過(guò)程中遇到任何難題,請(qǐng)通過(guò)關(guān)注公眾號(hào)“水經(jīng)注GIS”并在后臺(tái)留言告訴我們,我們將竭盡所能地為你提供幫助,從而將我們“為用戶(hù)提供豐富的地圖數(shù)據(jù)與專(zhuān)業(yè)的GIS服務(wù)”之宗旨落到實(shí)處!

分享到:
標(biāo)簽:SQLite
用戶(hù)無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定