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.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的博客-优快云博客_qgis二次开发

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

<think>嗯,用户想在OpenCV 4.5.5环境下配置Qt 5.12.2的编译方法。首先,我需要回忆一下这两个工具的依赖关系和编译步骤。OpenCV通常需要CMake来配置,而Qt的编译也需要特定的参数设置。 首先,用户可能已经安装了OpenCV 4.5.5,但编译Qt的时候可能需要一些依赖库。比如,之前提到的libssl-dev,这个在安装OpenCV或者Qt时可能会被用到,尤其是在涉及到网络功能的时候。所以可能需要先安装这些依赖项,比如运行sudo apt-get install libssl-dev,像引用[2]提到的。 然后,Qt的编译过程比较繁琐,需要下载源代码,配置编译选项。用户需要确认是否已经下载了Qt 5.12.2的源码包,并且解压正确。接下来,配置的时候可能需要指定-openssl,以确保Qt能够使用系统的SSL库。另外,OpenCV的环境变量是否正确设置也很重要,比如PKG_CONFIG_PATH指向OpenCV的.pc文件,这样Qt在编译时能找到OpenCV的头文件和库。 另外,用户可能在编译过程中遇到错误,比如缺少某些模块或者链接问题。这时候需要检查CMake的输出日志,看看是否有关于OpenCV的找不到的提示。可能需要手动指定OpenCV_DIR变量,指向OpenCV的编译目录,这样CMake就能正确找到相关的库路径。 还有,Qt的模块选择也很重要,用户可能不需要所有的模块,可以通过-skip参数跳过一些不必要的模块,以加快编译速度。同时,启用并行编译可以节省时间,比如使用make -j4。 最后,测试阶段需要确保示例程序能够正确链接OpenCV和Qt的库,可能需要在.pro文件中添加正确的INCLUDEPATH和LIBS路径,或者使用PKG_CONFIG来管理依赖关系。如果测试失败,可能需要检查环境变量和路径是否正确,或者是否有库版本冲突的问题。 总之,步骤大致是安装依赖、配置环境变量、正确配置Qt的编译选项、处理可能的错误,最后验证配置是否正确。需要一步步来,确保每个环节都没有问题。</think>在 OpenCV 4.5.5 环境下编译 Qt 5.12.2 需要分步完成环境配置和依赖处理,以下是具体步骤: --- ### 一、环境准备 1. **安装基础依赖** 执行命令安装编译工具链: ```bash sudo apt-get update sudo apt-get install build-essential libgl1-mesa-dev libssl-dev libxcb-xinerama0-dev libxkbcommon-dev ``` 其中 `libssl-dev` 是 OpenCV 和 Qt 网络模块的必备依赖[^2]。 2. **配置 OpenCV 环境变量** 确保 OpenCV 4.5.5 已正确安装,并设置环境变量: ```bash export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH ``` --- ### 二、Qt 源码编译 1. **下载 Qt 5.12.2 源码** 从 [Qt 官方仓库](https://download.qt.io/archive/qt/5.12/5.12.2/single/) 下载 `qt-everywhere-src-5.12.2.tar.xz`。 2. **配置编译选项** 解压源码后进入目录,执行: ```bash ./configure -opensource -confirm-license -opengl desktop -nomake examples -nomake tests -openssl ``` 关键参数说明: - `-openssl`:启用 SSL 支持(需提前安装 `libssl-dev`) - `-nomake examples`:跳过示例编译以节省时间 3. **编译与安装** ```bash make -j4 # 使用4线程并行编译 sudo make install ``` --- ### 三、集成 OpenCV 与 Qt 1. **Qt 项目配置** 在 Qt 项目的 `.pro` 文件中添加 OpenCV 依赖: ```qmake INCLUDEPATH += /usr/local/include/opencv4 LIBS += `pkg-config --libs opencv4` ``` 2. **验证编译环境** 创建一个测试程序包含以下代码: ```cpp #include <opencv2/opencv.hpp> #include <QDebug> int main() { qDebug() << "OpenCV version:" << CV_VERSION; return 0; } ``` 编译后若输出 `OpenCV version: 4.5.5` 表示集成成功[^1]。 --- ### 常见问题解决 - **错误:`GL/gl.h not found`** 安装 OpenGL 开发库: ```bash sudo apt-get install mesa-common-dev ``` - **错误:`undefined reference to SSL_library_init`** 确保编译 Qt 时添加 `-openssl` 参数,并检查 `libssl-dev` 是否安装。 ---
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值