QGIS二次开发环境配置(VS2019+QT5.12.2+QGIS3.26.3)

配置很多次QGIS二次开发环境,失败过很多次,现在终于成功了,把配置过程记录下来给正在为配置环境的地信人一些参考。

目录

一、下载QGIS二次开发SDK-OSGeo4w

二、在VS中配置QGIS

1、在VS中创建QT项目

2、项目属性设置

三、添加示例代码 

1、替换主函数代码

2、将相关dll文件放在项目.exe目录下

3、点击运行

一、下载QGIS二次开发SDK-OSGeo4w

Download QGIShttps://www.qgis.org/en/site/forusers/download.htmlQGIS二次开发环境配置(VS2019+QT5.12.2+QGIS3.26.3)_第1张图片

QGIS二次开发环境配置(VS2019+QT5.12.2+QGIS3.26.3)_第2张图片

下载完成后,运行 osgeo4w-setup.exe,进入安装向导。

QGIS二次开发环境配置(VS2019+QT5.12.2+QGIS3.26.3)_第3张图片

QGIS二次开发环境配置(VS2019+QT5.12.2+QGIS3.26.3)_第4张图片

这里注意选择存储路径,后面配环境会频繁用到,建议存储路径D:\OSGeo4W,笔者存储在D:\QGIS\OSGeo4W。

QGIS二次开发环境配置(VS2019+QT5.12.2+QGIS3.26.3)_第5张图片 这里默认,点击下一步。QGIS二次开发环境配置(VS2019+QT5.12.2+QGIS3.26.3)_第6张图片QGIS二次开发环境配置(VS2019+QT5.12.2+QGIS3.26.3)_第7张图片

 选第一个网站,然后下一步。

QGIS二次开发环境配置(VS2019+QT5.12.2+QGIS3.26.3)_第8张图片

在这里下载qgis包和 qt库,保证下载后..\OSGeo4W\apps文件中由Qt和qgis-ltr文件夹。(我已下载,可能界面提示有区别)

QGIS二次开发环境配置(VS2019+QT5.12.2+QGIS3.26.3)_第9张图片

QGIS二次开发环境配置(VS2019+QT5.12.2+QGIS3.26.3)_第10张图片

QGIS二次开发环境配置(VS2019+QT5.12.2+QGIS3.26.3)_第11张图片

完成后就可以开始进行VS的配置了!

二、在VS中配置QGIS

1、在VS中创建QT项目

由于QGIS二次开发环境必须在Release环境下才能运行,因此将Debug删去,只保留Release版本。其他默认下一步,成功创建项目。

QGIS二次开发环境配置(VS2019+QT5.12.2+QGIS3.26.3)_第12张图片

2、项目属性设置

(1)设置附加包含目录

在项目->xx(项目名)属性->c/c++->常规中,添加“附加包含目录” ,目录为下载的OSGeo4W的相关库存储路径,需要根据自己存储路径个性化设置。

QGIS二次开发环境配置(VS2019+QT5.12.2+QGIS3.26.3)_第13张图片

D:\QGIS\OSGeo4W\apps\qgis-ltr\include

D:\QGIS\OSGeo4W\apps\Qt5\include

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

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

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

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

 (2)设置附加库目录

在项链接器->常规中,添加“附加库目录” 。

QGIS二次开发环境配置(VS2019+QT5.12.2+QGIS3.26.3)_第14张图片

D:\QGIS\OSGeo4W\apps\Qt5\lib

D:\QGIS\OSGeo4W\apps\qgis-ltr\lib

 (3)设置附加依赖项

QGIS二次开发环境配置(VS2019+QT5.12.2+QGIS3.26.3)_第15张图片

qgis_core.lib

qgis_app.lib

qgis_gui.lib

Qt5Core.lib

Qt5Gui.lib

Qt5Widgets.lib

(4)其他设置

1>设置预处理器定义

在c/c++->预处理器->预处理器定义:

_USE_MATH_DEFINES 

QGIS二次开发环境配置(VS2019+QT5.12.2+QGIS3.26.3)_第16张图片

不设置可能会出现以下报错:

QGIS二次开发环境配置(VS2019+QT5.12.2+QGIS3.26.3)_第17张图片

2>设置C++语言标准

将 配置属性->常规->C++语言标准 设置为 ISO C++17标准(/std:c++17) 

QGIS二次开发环境配置(VS2019+QT5.12.2+QGIS3.26.3)_第18张图片

若为默认选项,会有以下报错。

QGIS二次开发环境配置(VS2019+QT5.12.2+QGIS3.26.3)_第19张图片

三、添加示例代码 

1、替换主函数代码

main.cpp中的代码替换成下列:

#include "peizhi.h" //这个需要根据自己的项目名修改
#include 
#include 
#include 
#include 
#include 

int main(int argc, char* argv[])
{
	QApplication a(argc, argv);
	QMainWindow main_window;

	QgsMapCanvas map_canvas;
	QgsRasterLayer layer(R"(E:\data\lucc2017.tif)");  //括号内的路径是本地影像路径,需要更改
	map_canvas.setLayers({ &layer });
	map_canvas.setExtent(layer.extent());
	map_canvas.refresh();
	QgsMapToolPan map_tool_pan(&map_canvas);
	map_canvas.setMapTool(&map_tool_pan);

	main_window.setCentralWidget(&map_canvas);
	main_window.show();
	return a.exec();
}

 此时运行报错——找不到QGIS相关dll

QGIS二次开发环境配置(VS2019+QT5.12.2+QGIS3.26.3)_第20张图片

2、将相关dll文件放在项目.exe目录下

QGIS二次开发环境配置(VS2019+QT5.12.2+QGIS3.26.3)_第21张图片

QGIS二次开发环境配置(VS2019+QT5.12.2+QGIS3.26.3)_第22张图片

 将下列bin中所有的文件全部复制到此目录下:

D:\QGIS\OSGeo4W\apps\Qt5\bin

D:\QGIS\OSGeo4W\bin

D:\QGIS\OSGeo4W\apps\qgis-ltr\bin

3、点击运行

成功利用VS配置QGIS二次开发环境!

QGIS二次开发环境配置(VS2019+QT5.12.2+QGIS3.26.3)_第23张图片

若出现

则将下列文件夹复制到.exe目录下。

D:\QGIS\OSGeo4W\apps\Qt5\plugins\platforms

QGIS二次开发环境配置(VS2019+QT5.12.2+QGIS3.26.3)_第24张图片

参考资料:

qgis二次开发环境搭建(超级详细)_xhome516的博客-CSDN博客_qgis二次开发

QGIS二次开发环境搭建(VS2022+QGIS3.24.0+QT5.15.2)_哔哩哔哩_bilibili

你可能感兴趣的:(QGIS,qt,c++,开发语言)