Qgis3.16ltr+VS2017二次开发环境搭建(保姆级教程)

news/2024/9/22 20:34:04/

1.二次开发环境搭建

下载osgeo4w-setup.exeDownload QGIShttps://www.qgis.org/en/site/forusers/download.html

 点击OSGeo4W Network Installer

点击下载 OSGeo4W Installer

 

运行程序 osgeo4w-setup.exe,出现以下界面,点击下一页。

 

选中install from internet,点击下一页。 

 

设置保存的路径,我这里设置E:\OSGeo4W,点击下一页。

这里设置下载存放的路径, 我这里设置E:\Temp,点击下一页。

选择Use System Proxy Settings,进入下一步 

  

添加URL:http://gwmodel.whu.edu.cn/mirrors/osgeo4w

​  

输入qgis-ltr,点击状态变为Install状态,点下一页,然后一直点同意下一页开始下载,如下图所示。

下载完成之后,打开Vs2017开始配置 ,进行配置,以下是demo程序目录,和qgis三方库目录。

在thirdPart路径下创建qgis目录,将E:\OSGeo4W\apps\qgis-ltr-dev目录下的include目录和lib目录拷贝到下面的路径。

2. VS2017开始配置

在工具栏中找到"Qt VS Tools",点击并找到"Options"->"Versions"进行Qt配置,配置文件夹以自己安装位置为准。

附加包含目录

点击"配置属性"->"C/C++"->"常规"-->"附加包含目录"

..\thirdPart\qgis\include

附加库目录

点击"配置属性"->"链接器"->"常规"-->"附加库目录"

..\thirdPart\qgis\lib

附加依赖项

点击"配置属性"->"链接器"->"输入"-->"附加依赖项"

qgis_core.lib
qgis_app.lib
qgis_gui.lib

预处理器定义

点击"配置属性"->“C/C++”->“预处理器”,在预处理器定义中加入"_USE_MATH_DEFINES"

配好以上环境后,基本上编译没有问题了,能够生成可执行程序了。

3.程序运行

拷贝E:\OSGeo4W\apps\qgis-ltr-dev\bin的所有 DLL文件到可执行程序目录下。

拷贝E:\OSGeo4W\apps\gdal-dev\bin的 DLL文件到可执行程序目录下。

拷贝E:\OSGeo4W\apps\proj-dev\bin的 DLL文件到可执行程序目录下。

拷贝E:\OSGeo4W\bin的 DLL文件到可执行程序目录下。

拷贝E:\OSGeo4W\apps\Qt5\bin DLL文件到可执行程序目录下。

拷贝E:\OSGeo4W\apps\Qt5\plugins\platforms目录到可执行程序目录下。

4.源码

以下是运行结果。

 

static QList<QgsMapLayer *> layers;
static QgsMapCanvas *m_mapCanvas = nullptr;GisCtrl::GisCtrl(QWidget *parent): QMainWindow(parent)
{ui.setupUi(this);QString fileName = "F:/GisCtrl/x64/out/map/counties_china.shp";QgsVectorLayer* vecLayer = new QgsVectorLayer(fileName);if (!vecLayer->isValid()){QMessageBox::critical(this, "error", QString("layer is invalid: \n") + fileName);return;}m_mapCanvas = new QgsMapCanvas();m_mapCanvas->setExtent(vecLayer->extent());layers.append(vecLayer);m_mapCanvas->setLayers(layers);m_mapCanvas->refresh();setCentralWidget(m_mapCanvas);
}int main(int argc, char *argv[])
{//QString PROJ_LIB_PATH = BussinessLogic::getInstance()->getProjPath();//qputenv("PROJ_LIB", PROJ_LIB_PATH.toLatin1());//Qt临时环境变量必QgsApplication app(argc, argv, true);QgsApplication::initQgis();GisCtrl w;w.showMaximized();return app.exec();
}

 5.shp素材文件

https://download.csdn.net/download/wzz953200463/88064897https://download.csdn.net/download/wzz953200463/88064897


http://www.ppmy.cn/news/949821.html

相关文章

Chatgpt的介绍-内容由chatgpt生成

以下文章由chatgpt生成&#xff0c;惊讶于chaggpt的能力已经有点让人惊讶&#xff0c;以此分享此文。 语言模型的发展可以追溯到最初的 n-gram 模型。n-gram 模型是一种基于统计学的模型&#xff0c;通过统计语料库中单词序列的频率来预测下一个单词。它通过考虑单词序列中连续…

如何使用 ChatGPT 进行数据库管理

管理数据库可能是一件大惊小怪的事情&#xff0c;但在 OpenAI 开发的强大语言生成模型 ChatGPT 的帮助下&#xff0c;它变得更易于管理。ChatGPT 可以针对与特定数据库相关的特定命令数据集进行微调&#xff0c;使其能够生成可以对该数据库执行各种操作的命令。 对模型进行微调…

ChatGPT最近大火?教你实现破产版ChatGPT(一)数据预处理

目录 一.前言 二.下载数据文件 三.导包并设置使用GPU 四.加载和预处理数据 五.为模型准备数据 一.前言 最近ChatGPT大火&#xff0c;成功破圈&#xff0c;到底是个啥&#xff1f; 简单说&#xff0c;它是一个模型&#xff0c;一个语言模型&#xff01;它是以对话方式与人进…

“提效”|教你用ChatGPT玩数据

ChatGPT与数据分析&#xff08;二&#xff09; 上文给简单聊了一下为什么ChatGPT不能取代数据分析师&#xff0c;本文我们来深入感受一下如何让GPT帮助数据分析师“提效”。 场景一&#xff1a;SQL取数 背景&#xff1a;多数数据分析师都要用SQL语言从数据库中提取数据&#x…

ChatGPT技术

目录 一、什么是ChatGPT&#xff1f;二、ChatGPT的技术背景三、ChatGPT的主要特点四、ChatGPT的工作原理五、ChatGPT为何成功&#xff1f; 一、什么是ChatGPT&#xff1f; ChatGPT本质是一个对话模型&#xff0c;它可以回答日常问题、进行多轮闲聊&#xff0c;也可以承认错误回…

训练一个ChatGPT需要多少数据?

“风很大”的ChatGPT正在席卷全球。作为OpenAI在去年底才刚刚推出的机器人对话模型&#xff0c;ChatGPT在内容创作、客服机器人、游戏、社交等领域的落地应用正在被广泛看好。这也为与之相关的算力、数据标注、自然语言处理等技术开发带来了新的动力。 自OpenAI发布ChatGPT以来…

ChatGPT在数据分析中的应用

最近&#xff0c;机器学习和人工智能技术在数据分析领域中发挥着越来越大的作用。而chatgpt正是这个领域最受欢迎的仿人聊天 AI 。但是&#xff0c;对于许多数据科学家和分析师来说&#xff0c;chatgpt并不是他们首选的工具。相反&#xff0c;pandas、sk-learn是数据科学家的最…

ChatGPT数据集之谜

半个月以来&#xff0c;ChatGPT这把火越烧越旺。国内很多大厂相继声称要做中文版ChatGPT&#xff0c;还公布了上线时间表&#xff0c;不少科技圈已功成名就的大佬也按捺不住&#xff0c;携巨资下场&#xff0c;要创建“中国版OpenAI“。 不过&#xff0c;看看过去半个月在群众眼…