Visual Studio环境搭建Qgis二次开发环境

devtools/2025/1/19 2:53:51/
  • QGIS(Quantum GIS)是一款开源的地理信息系统软件,支持二次开发以满足特定的地理信息处理需求。二次开发通常涉及到使用QGIS提供的API和SDK来创建自定义插件或独立应用程序。以下是关于如何搭建QGIS二次开发环境的一些关键步骤和注意事项。

1. 下载必要的软件包

  • OSGeo4W:这是QGIS的主要安装包,包含了QGIS及其依赖项。根据你的操作系统(32位或64位)选择合适的版本进行下载1。
  • Qt:QGIS是基于Qt框架开发的,因此需要安装Qt。推荐使用Qt 5.15版本,因为它与QGIS 3.28兼容3。
  • Visual Studio 或 Qt Creator:这两个IDE都可以用于QGIS的二次开发。Visual Studio适用于Windows平台,而Qt Creator则适用于跨平台开发23。
  • 2. 安装和配置环境

  • Windows平台
    • 使用OSGeo4W安装QGIS开发库。安装过程中选择“Advanced Install”选项,确保安装了所有必要的组件,如Core、GUI和Widgets12。
    • 配置Visual Studio或Qt Creator,创建一个新的Qt GUI Application项目,并引入QGIS库23。
  • 添加包含目录(一共6个)

将VC++目录中,包含目录添加以下地址(我的OSGeo4W默认装在D盘):

D:\OSGeo4W\apps\qgis-dev\include

D:\OSGeo4W\apps\Qt5\include

D:\OSGeo4W\apps\Qt5\include\QtCore

D:\OSGeo4W\apps\Qt5\include\QtWidgets

D:\OSGeo4W\apps\Qt5\include\QtGui

D:\OSGeo4W\apps\Qt5\include\QtXml

  • 添加库目录(一共2个)

D:\OSGeo4W\apps\Qt5\lib

D:\OSGeo4W\apps\qgis-dev\lib

  • 配置链接器(一共6个)

qgis_core.lib

qgis_app.lib

qgis_gui.lib

Qt5Core.lib

Qt5Gui.lib

Qt5Widgets.lib

  • 设置调试环境路径

PATH=D:\OSGeo4W\bin;D:\OSGeo4W\apps\qgis\bin;D:\OSGeo4W\apps\Qt5\bin

  • 设置预处理器

_USE_MATH_DEFINES

  • 设置C++语言标准为ISO C++17标准

配置结束后,测试代码如下:

#include <qapplication.h>

#include <qmainwindow.h>

#include <qgsmapcanvas.h>

#include <qgsrasterlayer.h>

#include <qgsmaptoolpan.h>

int main(int argc,char** argv){

QApplication app(argc, argv);

QMainWindow main_Window;

QgsMapCanvas map_canvas;

QgsRasterLayer layer(R"(E:\360MoveData\Users\DELL\Desktop\XGIS测试数据\abc.tif)");

}


http://www.ppmy.cn/devtools/151724.html

相关文章

sqlite3.OperationalError: database is locked python-BaseException错误解决

报错有2种&#xff1a; sqlite3.OperationalError: attempt to write a readonly databasesqlite3.OperationalError: database is locked python-BaseException 原因及解决方案&#xff1a; 1、被占用 由于SQLite只支持单线程。SQLite数据库在同一时间只能由一个连接执行写…

【PCL】Segmentation 模块—— 欧几里得聚类提取(Euclidean Cluster Extraction)

1、简介 PCL 的 Euclidean Cluster Extraction&#xff08;欧几里得聚类提取&#xff09; 是一种基于欧几里得距离的点云聚类算法。它的目标是将点云数据分割成多个独立的簇&#xff08;clusters&#xff09;&#xff0c;每个簇代表一个独立的物体或结构。该算法通过计算点与点…

25/1/15 嵌入式笔记 初学STM32F108

GPIO初始化函数 GPIO_Ini&#xff1a;初始化GPIO引脚的模式&#xff0c;速度和引脚号 GPIO_Init(GPIOA, &GPIO_InitStruct); // 初始化GPIOA的引脚0 GPIO输出控制函数 GPIO_SetBits&#xff1a;将指定的GPIO引脚设置为高电平 GPIO_SetBits(GPIOA, GPIO_Pin_0); // 将GPIO…

windows 极速安装 Linux (Ubuntu)-- 无需虚拟机

1. 安装 WSL 和 Ubuntu 打开命令行&#xff0c;执行 WSL --install -d ubuntu若报错&#xff0c;则先执行 WSL --update2. 重启电脑 因安装了子系统&#xff0c;需重启电脑才生效 3. 配置 Ubuntu 的账号密码 打开 Ubuntu 的命令行 按提示&#xff0c;输入账号&#xff0c;密…

【Redis】初识Redis

目录 Redis简介 Redis在内存中存储数据 Redis数据库中的应用 Redis缓存中的应用 Redis消息中间件 尾言 Redis简介 如下是Redis官网中&#xff0c;对Redis的一段描述 在这段描述中&#xff0c;我们提取如下关键要点&#xff1a; Redis主要用于在内存中存储数据Redis可…

勾股数元组

勾股数元组 真题目录: 点击去查看 E 卷 100分题型 题目描述 如果3个正整数(a,b,c)满足a^2 b^2 c^2的关系&#xff0c;则称(a,b,c)为勾股数&#xff08;著名的勾三股四弦五&#xff09;&#xff0c; 为了探索勾股数的规律&#xff0c;我们定义如果勾股数(a,b,c)之间两两互质…

以太网详解(五)GMII、RGMII、SGMII接口时序约束(Quartus 平台)

文章目录 接口时序Avalon Streaming 接口时序Receive TimingTransmit Timing GMII 接口时序Receive TimingTransmit Timing RGMII 接口时序Receive TimingTransmit Timing 如何创建 .sdc 约束文件三速以太网系统时钟信号创建 set_input_delay&#xff0c;set_output_delay 约束…

1️⃣Java中的集合体系学习汇总(List/Map/Set 详解)

目录 01. Java中的集合体系 02. 单列集合体系​ 1. Collection系列集合的遍历方式 &#xff08;1&#xff09;迭代器遍历&#xff08;2&#xff09;增强for遍历​编辑&#xff08;3&#xff09;Lambda表达式遍历 03.List集合详解 04.Set集合详解 05.总结 Collection系列…