2017-09-12 132 views
2

我试图创建一个自定义QGIS桌面应用程序与的Qt 5.9.1QGIS找不到头文件

我已经下载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

答案已解决:需要的标题文件可以在项目的“qgis-dev”分支中找到。

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。也许我会转移到其他示例或我将执行我的自定义基本应用程序。