我尝试使用 Qt 5.9.1
创建自定义QGIS桌面应用程序我已下载OSGeo4W(x64)地理空间软件集和Github C ++ QGIS samples,但我在编译时遇到错误:
Cannot open include file: 'qgsmapcanvas.h': No such file or directory
实际上上述头文件都不在OSGeo4W文件夹下:
#include <qgsapplication.h>
#include <qgsproviderregistry.h>
#include <qgssinglesymbolrenderer.h>
#include <qgsmaplayerregistry.h>
#include <qgsrasterlayer.h>
#include <qgsmapcanvas.h>
但是......他们不在dll库中(例如qgis_core,qgis_gui ......)?
无论如何,这是我的 * .pro 文件:
TEMPLATE = app
TARGET = qgis_example4
QT = sql network svg gui core xml
LANGUAGE= C++
INCLUDEPATH += "C:\\OSGeo4W64\\include"
LIBS += -L"C:\\OSGeo4W64\\apps\\qgis\\bin" -lqgis_core -lqgis_gui -lgdal_i -lgeos_c
DEFINES+=CORE_EXPORT=__declspec(dllexport)
DEFINES+=GUI_EXPORT=__declspec(dllexport)
CONFIG += qt gui exceptions stl warn_on debug thread
RESOURCES += resources.qrc
FORMS += mainwindowbase.ui
HEADERS = mainwindow.h
SOURCES = main.cpp \
mainwindow.cpp
PS:stackiverflow上有similar question,但我重复了一遍,因为给出的答案没有给出解决方案
答案 0 :(得分:0)
已解决:可以在&#34; qgis-dev &#34;中找到所需的标题文件。该项目的一个分支。
OSGeo4W :对于因某些原因无法使用OSGeo4W或只是喜欢它的用户,还有来自OSGeo4W的qgis-dev的每周快照为standalone installer
安装完成后,您可以在以下位置找到标题:
C:/Program Files/QGIS 2.99/apps/qgis-dev/include
这是我的 .pro 文件
TEMPLATE = app
TARGET = qgis_example4
QT = sql network svg gui core xml
LANGUAGE= C++
INCLUDEPATH += "C:/Program Files/QGIS 2.99/include"
INCLUDEPATH += "C:/Program Files/QGIS 2.99/apps/qgis-dev/include"
LIBS += -L"C:/Program Files/QGIS 2.99/apps/qgis-dev/bin" -lqgis_core -lqgis_gui
DEFINES+=CORE_EXPORT=__declspec(dllexport)
DEFINES+=GUI_EXPORT=__declspec(dllexport)
CONFIG += qt gui exceptions stl warn_on debug thread
RESOURCES += resources.qrc
FORMS += mainwindowbase.ui
HEADERS = mainwindow.h
SOURCES = main.cpp \
mainwindow.cpp
虽然现在存在文件,但我仍然无法运行QGIS samples。也许我会转移到其他样本,或者我会做我的自定义基本应用程序。