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

一 編譯環(huán)境

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

二 編譯步驟

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


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


下載下來并解壓后會(huì)得到以下文件


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

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


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

proj

geos

freexl

iconv

sqlite3

zlib

libxml2

安裝第三方庫 這里不推薦手動(dòng)編譯所有依賴的第三方庫,比較麻煩.這里推薦的方式是使用osgeo4w工具來安裝所需要的部分第三方庫.比如freexl ,iconv,zlib,libxml2。Osgeo4w是一個(gè)實(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)擊下一步


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



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




在Search里面輸入freexl


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



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




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




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




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




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

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



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



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




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

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


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

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



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



編譯Spatialite 前面的準(zhǔn)備工作做好以后,開始編譯Spatialite.需要先對(duì)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)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 這些天幾乎完全按照網(wǎng)上的教程及教程中提供的編譯庫版本進(jìn)行編譯,到最后進(jìn)行osgearth編譯時(shí)總是一大堆錯(cuò)誤,而大...
    me揮之即去閱讀 7,790評(píng)論 0 2
  • 提起 Michael Bay 的名稱很容易讓人聯(lián)想到《變形金剛》這部電影,他非常懂得如何去拍攝打斗激烈的機(jī)器人大戰(zhàn)...
    sofa閱讀 399評(píng)論 0 0
  • 眼看著天氣越來越熱,大家穿的也越來越少。作為一個(gè)高顏值團(tuán)隊(duì)的我們,辦公室很多愛美的同事也開啟了瘦身計(jì)劃,比如普拉提...
    Hi芷云閱讀 193評(píng)論 0 0
  • 2-7歲是給孩子建立好習(xí)慣養(yǎng)成的關(guān)鍵時(shí)期,好習(xí)慣會(huì)相伴孩子一生。
    2f8d7c732b8b閱讀 291評(píng)論 0 0
  • 之前健哥的文章有說到,寶寶感冒后,為什么有些寶寶容易發(fā)燒,有些寶寶則不會(huì),個(gè)中原因有很多,健哥今天就說一個(gè)重要的因...
    健哥說說閱讀 6,606評(píng)論 0 0

友情鏈接更多精彩內(nèi)容