配置很多次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.html
下载完成后,运行 osgeo4w-setup.exe,进入安装向导。
这里注意选择存储路径,后面配环境会频繁用到,建议存储路径D:\OSGeo4W,笔者存储在D:\QGIS\OSGeo4W。
这里默认,点击下一步。
选第一个网站,然后下一步。
在这里下载qgis包和 qt库,保证下载后..\OSGeo4W\apps文件中由Qt和qgis-ltr文件夹。(我已下载,可能界面提示有区别)
完成后就可以开始进行VS的配置了!
二、在VS中配置QGIS
1、在VS中创建QT项目
由于QGIS二次开发环境必须在Release环境下才能运行,因此将Debug删去,只保留Release版本。其他默认下一步,成功创建项目。
2、项目属性设置
(1)设置附加包含目录
在项目->xx(项目名)属性->c/c++->常规中,添加“附加包含目录” ,目录为下载的OSGeo4W的相关库存储路径,需要根据自己存储路径个性化设置。
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)设置附加库目录
在项链接器->常规中,添加“附加库目录” 。
D:\QGIS\OSGeo4W\apps\Qt5\lib
D:\QGIS\OSGeo4W\apps\qgis-ltr\lib
(3)设置附加依赖项
qgis_core.lib
qgis_app.lib
qgis_gui.lib
Qt5Core.lib
Qt5Gui.lib
Qt5Widgets.lib
(4)其他设置
1>设置预处理器定义
在c/c++->预处理器->预处理器定义:
_USE_MATH_DEFINES
不设置可能会出现以下报错:
2>设置C++语言标准
将 配置属性->常规->C++语言标准 设置为 ISO C++17标准(/std:c++17)
若为默认选项,会有以下报错。
三、添加示例代码
1、替换主函数代码
将main.cpp中的代码替换成下列:
#include "peizhi.h" //这个需要根据自己的项目名修改
#include <QtWidgets/QApplication>
#include <qgsapplication.h>
#include <qgsmapcanvas.h>
#include <qgsrasterlayer.h>
#include <qgsmaptoolpan.h>
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
2、将相关dll文件放在项目.exe目录下
将下列bin中所有的文件全部复制到此目录下:
D:\QGIS\OSGeo4W\apps\Qt5\bin
D:\QGIS\OSGeo4W\bin
D:\QGIS\OSGeo4W\apps\qgis-ltr\bin
3、点击运行
成功利用VS配置QGIS二次开发环境!
若出现
则将下列文件夹复制到.exe目录下。
D:\QGIS\OSGeo4W\apps\Qt5\plugins\platforms
参考资料:
qgis二次开发环境搭建(超级详细)_xhome516的博客