若該文為原創文章,轉載請注明原文出處
本文章博客地址:https://hpzwl.blog.csdn.net/article/details/139136356
長沙紅胖子Qt(長沙創微智科)博文大全:開發技術集合(包含Qt實用技術、樹莓派、三維、OpenCV、OpenGL、ffmpeg、OSG、單片機、軟硬結合等等)持續更新中…
Qt開發專欄:三方庫開發技術
上一篇:《QGIS開發筆記(一):QGIS介紹、軟件下載和加載shp地圖數據Demo》
下一篇:敬請期待…
前言
??使用QGis的目的是進行二次開發,或者說是融入我們的應用(無人車、無人船、無人機),本片描述搭建QGis二次基礎開發環境,由于實在是太長了,進行了分篇:
- 上半部分:主要是安裝好后,使用QtCreator可以使用QGIs的apps下的Qt使用對應的編譯器編譯不帶qgis的空工程。
- 下半部分:在上半部分基礎上添加qgis的依賴,并實現一個qgis的完全獨立模模塊化的應用,讓沒有安裝qgis庫的使用工程模板可以開始二次開發編譯。
Demo
??空demo
??
??運行qgis的demo
??
注意1:注意IDE
??基于Qtcreator,所以搭建QtCreator的IDE模塊化QGIS基礎環境,后續qmake的加載看出使用的msvc2017x64的庫,沒有的話請安裝vs2017x64的msvc編譯器
??
注意2:本次安裝途徑與直接安裝文件不同
??這與直接通過下載QGIs的安裝文件下載文件是不同的:
??
注意3:本途徑安裝已經指定了使用的Qt版本和QtSdk
??
Windows上部署QGis二次開發環境
步驟一:下載安裝OSGeo4W安裝文件
??下載地址:https://www.qgis.org/en/site/forusers/download.html
??
??
??
步驟二:安裝OSGeo4W
??
??點擊安裝:
??
??選擇自定義安裝:
??
??
??
??下面這個界面宣布選擇開始菜單都會有,直接下一步:
??
??
??選擇第一個挺快的,嘗試過其他國內源無法連接上:
??
??輸入qgis-ltr,這代表帥選qgis的最新版本,這里顯示是3.34,外面直接下的是3.36
??
??
??都同意下一步,最后開始下載:
??
??
??
??
??檢查一下:
??
??最新的穩定發布版本,檢查一下:
??
??
步驟三:打開QtCreator配置qmake編譯器
??Qt5.15.x版本默認使用QtCreator6.x,但是我們先使用Qt5.9.3帶的QtCreator為4.4.1。
??
??暫時也不知道lib是哪個msvc版本的,但是添加qmake就知道了,往下走:
??
??
??知道了msvc2017x64版本,就要配置編譯器了,本機已經安裝了vs系列,并且安裝了msvc2017x64版本,無需配置,配置頁面如下:
步驟四:新構建套件QGis3.34.7_Qt5.15.13_msvc2017x64
??注意名稱、編譯器(vs2017x64是msvc2017x64是v15版本)和qmake的版本選擇,配置通過則會是黃色驚嘆號,構建套沒有問題。(構建套有問題則會是紅色,無法編譯使用。)
??
步驟五:新建一個測試空工程檢測Qt配置
??
??
??
??
??
??
??
??查看“入坑一:jom編譯錯誤”解決,然后繼續:
??
??查看“入坑二:編譯uic.exe錯誤代碼0xc0000135”解決,然后繼續:
??
??至此,在QtCreator使用QGIs帶的QtSdk成功。
入坑
入坑一:jom編譯錯誤
問題
??Jom編譯錯誤
??
原理
??使用nmake,不使用jon
解決
??
入坑二:編譯uic.exe錯誤代碼”0xc0000135”
問題
??
過程
??有些庫無法調用到所以無法啟動,使用cmd查看一番:
??
??
??
??這些庫本身還依賴了一些,拷貝過去缺失的繼續cmd會提示,這里不一一列出了。
??搜索后得到:
??
??
??所以,Qt編譯運行環境需要包含OSGeo4W的bin下(可以推斷:對應的庫也可能需要包含OSGeo4W的lib路徑)。
解決
??
??這里直接復制缺少的幾個庫到Qt的bin下(有可能沒列全,請使用cmd自行嘗試),也可以修改環境變量,但是筆者為了不影響整臺電腦的其他環境,不添加系統環境變量。
??
上一篇:《QGIS開發筆記(一):QGIS介紹、軟件下載和加載shp地圖數據Demo》
下一篇:敬請期待…
若該文為原創文章,轉載請注明原文出處
本文章博客地址:https://hpzwl.blog.csdn.net/article/details/139136356