前言
使用QGis的目的是進行二次開發,或者說是融入我們的應用(無人車、無人船、無人機),本片描述搭建QGis二次基礎開發環境,由於實在是太長了,進行了分篇:
- 上半部分:主要是安裝好後,使用QtCreator可以使用QGIs的apps下的Qt使用對應的編譯器編譯不帶qgis的空工程。
- 下半部分:在上半部分基礎上新增qgis的依賴,並實現一個qgis的完全獨立模模組化的應用,讓沒有安裝qgis庫的使用工程模板可以開始二次開發編譯。
空demo
執行qgis的demo
基於Qtcreator,所以搭建QtCreator的IDE模組化QGIS基礎環境,後續qmake的載入看出使用的msvc2017x64的庫,沒有的話請安裝vs2017x64的msvc編譯器
這與直接透過下載QGIs的安裝檔案下載檔案是不同的:
下載地址:https://www.qgis.org/en/site/forusers/download.html
點選安裝:
選擇自定義安裝:
下面這個介面宣佈選擇開始選單都會有,直接下一步:
選擇第一個挺快的,嘗試過其他國內源無法連線上:
輸入qgis-ltr,這代表帥選qgis的最新版本,這裡顯示是3.34,外面直接下的是3.36
都同意下一步,最後開始下載:
檢查一下:
最新的穩定釋出版本,檢查一下:
Qt5.15.x版本預設使用QtCreator6.x,但是我們先使用Qt5.9.3帶的QtCreator為4.4.1。
暫時也不知道lib是哪個msvc版本的,但是新增qmake就知道了,往下走:
知道了msvc2017x64版本,就要配置編譯器了,本機已經安裝了vs系列,並且安裝了msvc2017x64版本,無需配置,配置頁面如下:
注意名稱、編譯器(vs2017x64是msvc2017x64是v15版本)和qmake的版本選擇,配置透過則會是黃色驚歎號,構建套沒有問題。(構建套有問題則會是紅色,無法編譯使用。)
檢視“入坑一:jom編譯錯誤”解決,然後繼續:
檢視“入坑二:編譯uic.exe錯誤程式碼0xc0000135”解決,然後繼續:
至此,在QtCreator使用QGIs帶的QtSdk成功。
Jom編譯錯誤
使用nmake,不使用jon
有些庫無法呼叫到所以無法啟動,使用cmd檢視一番:
這些庫本身還依賴了一些,複製過去缺失的繼續cmd會提示,這裡不一一列出了。
搜尋後得到:
所以,Qt編譯執行環境需要包含OSGeo4W的bin下(可以推斷:對應的庫也可能需要包含OSGeo4W的lib路徑)。
這裡直接複製缺少的幾個庫到Qt的bin下(有可能沒列全,請使用cmd自行嘗試),也可以修改環境變數,但是筆者為了不影響整臺電腦的其他環境,不新增系統環境變數。