赞
踩
配置很多次QGIS二次开发环境,失败过很多次,现在终于成功了,把配置过程记录下来给正在为配置环境的地信人一些参考。
目录
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的配置了!
由于QGIS二次开发环境必须在Release环境下才能运行,因此将Debug删去,只保留Release版本。其他默认下一步,成功创建项目。
(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)
若为默认选项,会有以下报错。
将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
将下列bin中所有的文件全部复制到此目录下:
D:\QGIS\OSGeo4W\apps\Qt5\bin
D:\QGIS\OSGeo4W\bin
D:\QGIS\OSGeo4W\apps\qgis-ltr\bin
成功利用VS配置QGIS二次开发环境!
若出现
则将下列文件夹复制到.exe目录下。
D:\QGIS\OSGeo4W\apps\Qt5\plugins\platforms
参考资料:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。