上一篇文章讲完QGIS编译,分别编译了RelWithDebInfo和Release两个版本,因为在vs工程下Release也可以开启调试模式,所以没有编译Debug版本。本篇文章讲解如何将编译后的文件引入到vs工程中使用。
vs2019+Qt5.15.2
从QT官网下载qt在线下载器https://download.qt.io/archive/online_installers/,按提示安装qt5.15.2,同时记得勾选对应vs的版本的tool工具选项,比如winrt_x64_msvc2019。
在vs2019下新建QT widgets Application项目。
选择如图所示的Qt Version,默认添加了core、Gui、Widgets模块。
在如图所示部分添加需要使用到的QT模块
需要使用到的QGIS源码中的头文件在这几个目录下(根据需要增删)
为了方便, 我是将需要使用的qgis头文件全放在QGISDev\include文件夹下。在附加包含目录部分,添加QGIS相关头文件目录。
这里QTN_VERSION_RIBBON=5.8.1是因为我的工程使用的QtitanRibbon UI控件,所以需要添加。注意添加_USE_MATH_DEFINES,否则可能会遇到报无法解析类似M_PI等math库中变量或函数的问题。
将qgis lib文件目录添加进来,注意Release 、Debug等版本的区分。
(4).Release版本设置成可调试
在以下三个地方进行设置
环境设置好后,将main.cpp中修改为如下内容(主要是为了初始化QGIS环境),就可以开始QGIS的二次开发了。
//可执行程序的当前目录
QString appDir = QCoreApplication::applicationDirPath();
//设置QSetting环境
QCoreApplication::setOrganizationName("QtQgis");
QCoreApplication::setApplicationName("QtQgis Application");
//初始化QGIS环境
QgsApplication::init(appDir);
QgsApplication::initQgis();
QgsApplication::setMaxThreads(8);
QtGis w;
w.show();
return a.exec();
1.将QT、QGIS、GDAL相关的dll拷贝到生成exe的目录下,可以去安装的QT、QGIS相关目录下拷贝。比如我工程下的QT相关的dll(按需引入)
2.以上环境配置好后,运行工程时,会提示如下的错误:
解决方式:将QT相应的plugins目录下的style文件夹及platforms文件夹拷贝到生成exe的目录下,比如我的路径是:D:\Qt\5.15.2\msvc2019_64\plugins。其中style文件夹中的dll是用来设置QT界面的样式。