前言
使用QGis的目的是進行二次開發,或者說是融入我們的應用(無人車、無人船、無人機),本片描述搭建QGis二次基礎開發環境,由於實在是太長了,進行了分篇:
- 上半部分:主要是安裝好後,使用QtCreator可以使用QGIs的apps下的Qt使用對應的編譯器編譯不帶qgis的空工程。
- 下半部分:在上半部分基礎上添加qgis的依賴,並實現一個qgis的完全獨立模模塊化的應用,讓沒有安裝qgis庫的使用工程模板可以開始二次開發編譯。
空demo
運行qgis的demo
基於Qtcreator,所以搭建QtCreator的IDE模塊化QGIS基礎環境,後續qmake的加載看出使用的msvc2017x64的庫,沒有的話請安裝vs2017x64的msvc編譯器
這與直接通過下載QGIs的安裝文件下載文件是不同的:
點擊安裝:
選擇自定義安裝:
下面這個界面宣佈選擇開始菜單都會有,直接下一步:
選擇第一個挺快的,嘗試過其他國內源無法連接上:
輸入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自行嘗試),也可以修改環境變量,但是筆者爲了不影響整臺電腦的其他環境,不添加系統環境變量。