SpatiaLite空間數(shù)據(jù)庫win64平臺庫的編譯

一 編譯環(huán)境

操作系統(tǒng):windows10 64位企業(yè)版苇羡,編譯器:visualstudio2017企業(yè)版.Spatialite版本:4.30.

二 編譯步驟

下載Spatialite源代碼.? ? Spatialite屬于Gaia-SINS項(xiàng)目中的一個,Gaia-SINS項(xiàng)目的主頁是http://www.gaia-gis.it/gaia-sins/程奠,這個頁面列出了Gaia-SINS的所有子項(xiàng)目计寇。


點(diǎn)擊紅框中的Spatialite鏈接進(jìn)入到Spatialite項(xiàng)目主頁扩淀。


下載下來并解壓后會得到以下文件


注意nmake.opt,makefile.vc,config-msvc.h三個文件,后面用nmake編譯的時候需要對這三個文件進(jìn)行一些修改.src文件是Spatialite的源碼,里面也需要做一些修改.

查看依賴庫 Spatialite有幾個依賴的第三方庫,在編譯Spatialite之前需要提前把這些第三方庫準(zhǔn)備好, 先來看一下依賴的第三方庫有哪些.這里我們使用Nodepad++打開Home下面的makefile.vc文件,找到第75行


從這段代碼中,可以看到這個版本的Spatialite需要的第三方庫:

proj

geos

freexl

iconv

sqlite3

zlib

libxml2

安裝第三方庫 這里不推薦手動編譯所有依賴的第三方庫,比較麻煩.這里推薦的方式是使用osgeo4w工具來安裝所需要的部分第三方庫.比如freexl 吠撮,iconv伊滋,zlib洋幻,libxml2郁轻。Osgeo4w是一個實(shí)用程序,可以幫你找到和下載第三方庫的頭文件,lib和dll. Osgeo4w的下載地址是https://trac.osgeo.org/osgeo4w/,單擊下圖箭頭指向處的紅框下載64位的OSgeo4w.


下載完成之后選擇安裝



選擇Advanced Install,點(diǎn)擊下一步



選擇Install from Internet,點(diǎn)擊下一步


Root Directory使用默認(rèn)的C:\OSGeo4W64,Install For選擇All Users,點(diǎn)擊下一步


Local Package Directroy我選擇的是D:\Osgeo,也就是存放osgeo4w安裝文件的位置.點(diǎn)擊下一步


選擇Direct Connection,點(diǎn)擊下一步


選中http://download.osgeo.org,使它變藍(lán),點(diǎn)擊下一步


會有一個加載頁面,如果網(wǎng)速慢,可能會在這里卡一會兒.然后會自動跳轉(zhuǎn)到下一個界面



點(diǎn)擊View按鈕,直到Category變成Full,下面表格的顯示方式也會改變




在Search里面輸入freexl


選擇第一個,點(diǎn)擊第一行的Skip



點(diǎn)擊Clear,在Search里面輸入iconv




點(diǎn)擊Clear,在Search里面輸入zlib




只有一個結(jié)果,點(diǎn)擊Skip




點(diǎn)擊Clear,在Search里面輸入libxml2




只有一個結(jié)果,點(diǎn)擊Skip

現(xiàn)在所需要的第三方庫都已經(jīng)選中了,點(diǎn)擊下一步



這時候會彈出一個警告,說下面列出來的包是需要的,但是沒有被選中,這時候我們只要保證



這個復(fù)選框是選中的就行,然后點(diǎn)擊下一步




這時候osgeo4w就開始安裝剛才選中的庫以及其依賴庫,只要等著安裝完成就行了.如果碰到安裝失敗的問題,那可能是國內(nèi)的網(wǎng)絡(luò)問題,請使用vpn.然后按照上面的步驟重新來一遍.

安裝完成后,點(diǎn)擊完成按鈕退出.安裝好依賴庫之后可以看到兩個變化,第一個是在C盤下面多出了一個OSGeo4W64文件夾


里面有第三方庫的頭文件,lib和bin

接下來我們打開OSGeo4w64目錄文件夾,如下圖所示好唯,然后分別把我們已經(jīng)編譯好的proj竭沫,geos, sqllite3等第三方庫的頭文件,lib,dll對應(yīng)的放入目錄下骑篙。



另外一個變化,就是在osgeo4w的安裝程序目錄下面多出了一個文件夾,用于存放下載過的庫



編譯Spatialite 前面的準(zhǔn)備工作做好以后,開始編譯Spatialite.需要先對nmake腳本和源代碼做一些修改. 源代碼修改 NMake編譯是從makefile.vc開始的,使用Nodepad打開D:\libspatialite-4.3.0a下面的makefile.vc,做以下幾處修改: 定位到第62行,原內(nèi)容如下




改為



定位到第75行到81行,原內(nèi)容如下



改為




使用Nodepad打開Home下面的nmake.opt,做以下幾處修改:

定位到第2行,原內(nèi)容


改為


定位到第5行到第6行,原內(nèi)容



改為



使用Nodepad打開Home下面的config-msvc.h,做以下幾處修改: 定位到146行,原內(nèi)容





使用Nodepad打開D:\libspatialite-4.3.0a下面的gg_extras.c,做以下幾處修改: 定位到63行,原內(nèi)容



改為



使用nmake編譯 依次選擇開始->所有程序->Visual Studio 2017 文件夾下按下圖找到該選項(xiàng),打開窗口



雙擊”VS2017 x64 本機(jī)工具命令提示”,打開命令行


輸入命令cd /d D:\libspatialite-4.3.0a,按回車進(jìn)入到Spatialite文件夾目錄



輸入nmake命令nmake /f makefile.vc install /s,按回車,開始進(jìn)行編譯



生成的頭文件蜕提,lib和dll分別在C:\OSGeo4W64\include\spatialite, C:\OSGeo4W64\lib和C:\OSGeo4W64\bin下面,需要說明的是靶端,生成的該版本的編譯文檔為Debuge版本Spatialite庫谎势。



如果要生成Release版本的, 使用Nodepad打開D:\libspatialite-4.3.0a下面的nmake.opt,做以下幾處更改: 定位到第5行到第7行,原內(nèi)容



改為


然后重新執(zhí)行nmake命令nmake /f makefile.vc install /s,就可以編譯Relese版本的Spatialite庫.

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市杨名,隨后出現(xiàn)的幾起案子脏榆,更是在濱河造成了極大的恐慌,老刑警劉巖台谍,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件须喂,死亡現(xiàn)場離奇詭異,居然都是意外死亡典唇,警方通過查閱死者的電腦和手機(jī)镊折,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進(jìn)店門胯府,熙熙樓的掌柜王于貴愁眉苦臉地迎上來介衔,“玉大人,你說我怎么就攤上這事骂因⊙卓В” “怎么了?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵寒波,是天一觀的道長乘盼。 經(jīng)常有香客問我,道長俄烁,這世上最難降的妖魔是什么绸栅? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮页屠,結(jié)果婚禮上粹胯,老公的妹妹穿的比我還像新娘。我一直安慰自己辰企,他們只是感情好风纠,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著牢贸,像睡著了一般竹观。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天臭增,我揣著相機(jī)與錄音懂酱,去河邊找鬼。 笑死速址,一個胖子當(dāng)著我的面吹牛玩焰,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播芍锚,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼昔园,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了并炮?” 一聲冷哼從身側(cè)響起默刚,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎逃魄,沒想到半個月后荤西,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡伍俘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年邪锌,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片癌瘾。...
    茶點(diǎn)故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡觅丰,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出妨退,到底是詐尸還是另有隱情妇萄,我是刑警寧澤,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布咬荷,位于F島的核電站冠句,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏幸乒。R本人自食惡果不足惜懦底,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望罕扎。 院中可真熱鬧聚唐,春花似錦、人聲如沸壳影。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽宴咧。三九已至根灯,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背烙肺。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工纳猪, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人桃笙。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓氏堤,卻偏偏與公主長得像,于是被迫代替她去往敵國和親搏明。 傳聞我的和親對象是個殘疾皇子鼠锈,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容