
问题路径
qt怎样读取enc
qt怎样读取海图文件
qt怎样配置qgis
VS2022如何配置qgis
qt 5./12.7如何配置qgis
需求
完成在 qt 5.12.7版本下编译器mingw和mscv的配置 以及qgis的配置
娇嗔一(×)
https://zhuanlan.zhihu.com/p/83805300
教程缺点jioachen:
1.这个到了后面的文件移植的时候 share部分在3.38版本中都缺少名为gdal的文件夹子
2.选取下载的目录看不清楚
3.下载的版本和教程时间比较久远
好:
也告诉我一定要拷贝
告诉我一定要在pro里配相关库文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 QT += core gui xml
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
CONFIG += c++1z
DEFINES += QT_DEPRECATED_WARNINGS
INCLUDEPATH+="C:/Qt/Qt5.14.2/5.14.2/msvc2017_64/include"
INCLUDEPATH+="C:/OSGeo4W2/include"
INCLUDEPATH+="C:/OSGeo4W2/apps/qgis-ltr/include"
LIBS+= -L"C:/OSGeo4W2/apps/qgis-ltr/lib"
LIBS+= -L"C:/OSGeo4W2/lib" -lqgis_app -lqgis_core -lqgis_gui
# debug
LIBS += -L
SOURCES += \
main.cpp \
mainwindow.cpp
HEADERS += \
mainwindow.h
FORMS += \
mainwindow.ui
# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
相关测试代码
1 |
|
👎 error: LNK1158: 无法运行“rc.exe”
娇嗔二
1
2
3
4
5
6
7
8 F:\OSGeo4W\include;
F:\OSGeo4W\apps\Qt5\include\QtXml;
F:\OSGeo4W\apps\Qt5\include\QtCore;
F:\OSGeo4W\apps\Qt5\include\QtWidgets;
F:\OSGeo4W\apps\Qt5\include\QtGui;
F:\OSGeo4W\apps\Qt5\include;
F:\OSGeo4W\apps\qgis\include;
%(AdditionalIncludeDirectories)
1
2
3 F:\OSGeo4W\apps\Qt5\lib;
F:\OSGeo4W\apps\qgis\lib;
%(AdditionalLibraryDirectories)
1
2
3
4
5
6
7 qgis_core.lib;
qgis_app.lib;
qgis_gui.lib;
Qt5Widgets.lib;
Qt5Xml.lib;%(AdditionalDependencies)
_USE_MATH_DEFINES;
👎 qt error: LNK1158: 无法运行“rc.exe”
https://blog.csdn.net/my_angle2016/article/details/126284219
>F:\OSGeo4W\apps\Qt5\include\QtWidgets\qdatetimeedit.h(45,10): error C1083: 无法打开包括文件: “QtCore/qcalendar.h”: No such file or directory
娇嗔三(×)
https://www.bilibili.com/video/BV1ei4y127LM/?vd_source=dbe14335c46e4fc9f76a6643a614c5af
F:\OSGeo4w\apps\gdal-dev;
F:\OSGeo4w\apps\Qt5\include;
F:\OSGeo4w\apps\Qt5\include\QtCore;
F:\OSGeo4w\apps\Qt5\include\QtWidgets;
F:\OSGeo4w\apps\Qt5\include\QtGui;
F:\OSGeo4w\apps\Qt5\include\QtXml
F:\OSGeo4w\apps\qgis\include
F:\OSGeo4w\apps\Qt5\lib;
F:\OSGeo4w\apps\qgis-dev\lib
qgis_core.lib;
qgis_app.lib;
qgis_gui.lib;
Qt5Core.lib;
Qt5Gui.lib;
Qt5Widgets.lib
PATH=F:\OSGeo4w\bin;
PATH=F:\OSGeo4w\apps\qgis\bin;
PATH=F:\OSGeo4w\apps\Qt5\bin
_USE_MATH_DEFINES
#include “stdafx.h”
#include “test5.h”
#include <QtWidgets/QApplication>
#include<qmainwindow.h>#include<qgsmapcanvas.h>
#include<qgsmaptoolpan.h>
#include<qgsrasterlayer.h>int main(int argc, char *argv[])
{
QApplication a(argc, argv);
test5 w;
w.show();
return a.exec();
}
最后这里在
这个库里面
这个锁引入不进去 真的很无语
为什么呢?
qt VS2022开发环境中已经在文件中引入了未定义标识符 "QRecursiveMutex"的相关库 QRecursiveMutex 标识符依然显示未定义 为什么
检查 Qt 版本: 确认你使用的 Qt 版本是否支持
QRecursiveMutex
。这个类是在 Qt 5.14 及以后的版本中引入的。如果你使用的是旧版本的 Qt,可能没有这个类。
现在下一个5.15版本的试试看,估计很久
这里可以看到至少要下5.15.13之后的才行
我这里qt目前只提供5.15.2的
剩下的都到6了
娇嗔四
https://www.cnblogs.com/Qt895996365/p/13516902.html
娇嗔五(自创)
qt 5.12.7 + qgis 3.10+ qt creator
qgis 3.10下载
https://www.osgeo.cn/qgis/site/forusers/download.html
两个86 和64 都下
这个下载在后面包含路径的时候没有包含
根本没有include这个文件夹里面
我下载的时候这两个链接失效了
最后下这个
还是存在这个问题
没有这个文件怎么引入呢?
下别人的包试一下
https://blog.csdn.net/j_in2018/article/details/107304496
别人的包真的有include
我好无语靠靠靠靠靠
include的话
就是把接口暴露出来给二次开发用的
上面那两个不是二次开发来着的吧
娇嗔六
https://blog.csdn.net/j_in2018/article/details/107304496
唯一走到不一样的一步
qgis版本说明
编译过程中jom.exe退出
娇嗔六之后能运行又crash的程序
没事
人崩溃很正常
活着挺开心的
把qgs里面的相关程序代码调用屏蔽掉可以运行的
真的很神经
那我改一下C++版本
重新写了C++版本之后?
还是程序会崩溃
按照教程移植过去ddl们之后
出现了这个
此时库是这样的,我删除试试咯
好像我把版本放错了
我把32位的osg的版本放到64位的release程序之下
重新按照
https://zhuanlan.zhihu.com/p/83805300
搬完64位的dll之后
程序构建没有问题了
让我们祈祷它接下来能够跑起来去啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊!
恢复
只是链接头文件是可以的
但是如果是要那啥可不行
程序还是会crash
查看编译过程信息
这个真的合理吗
这个是屏蔽掉代码之后的情况
C++版本的问题?
并不是
代码还是跑不起来
setProject无法调用
估计是gis版本有点老
没有这个函数
这个qgis版本是3.10的