QGIS開發筆記(二):Windows安裝版二次開發環境搭建(上):安裝OSGeo4W運行依賴其Qt的基礎環境Demo

若該文為原創文章,轉載請注明原文出處
本文章博客地址: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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/16104.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/16104.shtml
英文地址,請注明出處:http://en.pswp.cn/web/16104.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

如果返回的json 中有 ‘///’ 轉換

// 將返回數據的三條/和替換空 rowData.Jsonobj rowData.Jsonobj .replace(/^\s*\/\/\/.*$/gm, //); // 將返回的替換成" 并且外面加個"" rowData.Jsonobj "${rowData.Jsonobj .replace(//g, ")}"; // 轉換回來數據用兩個 JSON.parse(JSON.par…

Charles抓包App_https_夜神模擬器

Openssl安裝 下載安裝 下載地址: http://slproweb.com/products/Win32OpenSSL.html 我已經下載好了64位的,也放出來: 鏈接:https://pan.baidu.com/s/1Nkur475YK48_Ayq_vEm99w?pwdf4d7 提取碼:f4d7 --來自百度網…

地下城游戲(leetcode)

個人主頁&#xff1a;Lei寶啊 愿所有美好如期而遇 地下城游戲https://leetcode.cn/problems/dungeon-game/description/ 圖解分析&#xff1a; 代碼 class Solution { public:int calculateMinimumHP(vector<vector<int>>& vv) {int row vv.size(), col …

Zookeeper 安裝教程和使用指南

一、Zookeeper介紹 ZooKeeper 是 Apache 軟件基金會的一個開源項目&#xff0c;主要基于 Java 語言實現。 Apache ZooKeeper 是一個開源的分布式應用程序協調服務&#xff0c;提供可靠的數據管理通知、數據同步、命名服務、分布式配置服務、分布式協調等服務。 關鍵特性 分布…

Nginx實戰(安裝部署、常用命令、反向代理、負載均衡、動靜分離)

文章目錄 1. nginx安裝部署1.1 windows安裝包1.2 linux-源碼編譯1.3 linux-docker安裝 2. nginx介紹2.1 簡介2.2 常用命令2.3 nginx運行原理2.3.1 mater和worker2.3.3 Nginx 的工作原理 2.4 nginx的基本配置文件2.4.1 location指令說明 3. nginx案例3.1 nginx-反向代理案例013.…

數據結構和算法|排序算法系列(三)|插入排序(三路排序函數std::sort)

首先需要你對排序算法的評價維度和一個理想排序算法應該是什么樣的有一個基本的認知&#xff1a; 《Hello算法之排序算法》 主要內容來自&#xff1a;Hello算法11.4 插入排序 插入排序的整個過程與手動整理一副牌非常相似。 我們在未排序區間選擇一個基準元素&#xff0c;將…

移動云以深度融合之服務,令“大”智慧貫穿云端

移動云助力大模型&#xff0c;開拓創新領未來。 云計算——AI模型的推動器。 當前人工智能技術發展的現狀和趨勢&#xff0c;以及中國在人工智能領域的發展策略和成就。確實&#xff0c;以 ChatGPT 為代表的大型語言模型在自然語言處理、文本生成、對話系統等領域取得了顯著的…

項目管理:敏捷實踐框架

一、初識敏捷 什么是敏捷(Agile)?敏捷是思維方式。 傳統開發模型 央企,國企50%-60%需求分析。整體是由文檔控制的過程管理。 傳統軟件開發面臨的問題: 交付周期長:3-6個月甚至更長溝通效果差:文檔化溝通不及時按時發布低:技術債增多無法發版團隊士氣弱:死亡行軍不關注…

Vmware 17安裝 CentOS9

前言 1、提前下載好需要的CentOS9鏡像&#xff0c;下載地址&#xff0c;這里下載的是x86_64 2、提前安裝好vmware 17&#xff0c;下載地址 &#xff0c;需要登錄才能下載 安裝 1、創建新的虛擬機 2、在彈出的界面中選擇對應的類型&#xff0c;我這里選擇自定義&#xff0c;點…

python command亂碼怎么解決

python command亂碼怎么解決&#xff1f;具體方法如下&#xff1a; 先引入import sys 再加一句&#xff1a;typesys.getfilesystemencoding() 然后在輸出亂碼的數據的后面加上“.decode(utf-8).encode(type)”。 比如輸入“ss”亂碼。 就寫成print ss.decode(utf-8).encode(typ…

USB - Host controller類型介紹

USB 主機控制器類型 USB 主機控制器是計算機系統中的重要組件&#xff0c;負責管理計算機與連接的 USB 設備之間的通信。多年來&#xff0c;針對不同的 USB 標準和數據傳輸速率&#xff0c;開發了多種類型的 USB 主機控制器。以下是主要 USB 主機控制器類型的概述&#xff1a; …

【話題】AIGC行業現在適合進入嗎

大家好&#xff0c;我是全棧小5&#xff0c;歡迎閱讀小5的系列文章&#xff0c;這是《話題》系列文章 目錄 引言AIGC的發展階段市場需求時機是否合適優勢挑戰 文章推薦 引言 在撰寫關于當前是否適合進入AIGC&#xff08;人工智能生成內容&#xff09;行業的文章之前&#xff0…

從零實現Llama3中文版

1.前言 一個月前&#xff0c;Meta 發布了開源大模型 llama3 系列&#xff0c;在多個關鍵基準測試中優于業界 SOTA 模型&#xff0c;并在代碼生成任務上全面領先。 此后&#xff0c;開發者們便開始了本地部署和實現&#xff0c;比如 llama3 的中文實現、llama3 的純 NumPy 實現…

數據結構——鏈式二叉樹知識點以及鏈式二叉樹數據操作函數詳解!!

引言&#xff1a;該博客將會詳細的講解二叉樹的三種遍歷方法&#xff1a;前序、中序、后序&#xff0c;也同時會講到關于二叉樹的數據操作函數。值得一提的是&#xff0c;這些函數幾乎都是建立在一個函數思想——遞歸之上的。這次的代碼其實寫起來十分簡單&#xff0c;用不了幾…

告別紅色波浪線:tsconfig.json 配置詳解

使用PC端的朋友&#xff0c;請將頁面縮小到最小比例&#xff0c;閱讀最佳&#xff01; tsconfig.json 文件用于配置 TypeScript 項目的編譯選項。如果配不對&#xff0c;就會在項目中顯示一波又一波的紅色波浪線&#xff0c;警告你這些地方的類型聲明存在問題。 一般我們遇到這…

在沒有dubbo-admin情況下如何判斷zk中注冊的dubbo服務是否注冊成功

通常我們都是通過dubbo-admin來查看dubbo服務是否注冊成功&#xff0c;那么如果沒有部署dubbo-admind的情況下&#xff0c;我們如何來判斷dubbo服務是否注冊成功&#xff1a; 一、首先我們進入到zookeeper bin目錄下使用以下指令連接到zk: ./zkCli.sh -server ip:port ip&…

Linux文件系統原理

Linux文件系統 馮諾依曼在1945年提出計算機的五大組成部分 運算器&#xff1a;CPU 控制器&#xff1a;CPU 存儲器&#xff1a;內存和硬盤 輸入設備&#xff1a;鼠標、硬盤 輸出設備&#xff1a;顯示器一、硬盤結構 機械硬盤結構 扇區&#xff1a;硬盤的最小存儲單位&#xff…

Transformer講解大綱,寫PPT的可參考

前言 在這個信息如星辰般璀璨的時代,我們被無數的語言和文字包圍。它們如同夜空中閃爍的繁星,每一顆都蘊藏著獨特的故事和知識。然而,如何解讀這些星辰的秘密,如何將它們的光芒匯聚成智慧的海洋,成為了我們這個時代的挑戰。今天,我們將一起探索一種名為Transformer的神秘…

【路徑規劃】基于遺傳算法GA實現最短距離 多起點多終點多旅行商問題求解附Matlab代碼

基于遺傳算法GA實現最短距離 多起點多終點多旅行商問題求解 研究背景:研究步驟:研究方法和技術路線:代碼研究背景: 多起點多終點多旅行商問題是旅行商問題(TSP)的一個擴展,該問題要求確定多個旅行商從各自的起點出發,分別經過一系列目標點最終回到各自的終點,使得總路…

IOT技術怎么落地?以寶馬,施耐德為例

物聯網技術 物聯網&#xff08;IoT&#xff09;技術正逐漸成為數字化工廠轉型的核心驅動力。本文將通過實際案例&#xff0c;探討IoT技術如何促進制造業的數字化轉型&#xff0c;提高生產效率&#xff0c;降低成本&#xff0c;并提升產品質量。 1. 物聯網技術簡介 物聯網技術通…