首页 > 解决方案 > 与 QGIS C++ API 斗争

问题描述

我正在尝试使用 QGIS SDK 创建一个简单的应用程序。但目前,我在最初阶段就被 API 困住了。下面是环境。

Windows 7的

MSVC 2015

QGIS SDK(由 OSGeo4w 下载)包括:qgis-dev(3.2.3) Qt5(5.9)

这是 OSGeo4w 目录

这是 OSGeo4w/app 目录

首先创建一个空项目,属性设置:

C/C++ -> 常规 -> 附加包含目录

C:\OSGeo4W\apps\Qt5\include
C:\OSGeo4W\apps\Qt5\include\QtCore
C:\OSGeo4W\apps\Qt5\include\QtGui
C:\OSGeo4W\apps\Qt5\include\QtWidgets
C:\OSGeo4W\apps\Qt5\include\QtXml
C:\OSGeo4W\apps\qgis-dev\include
C:\OSGeo4W\include

链接器 -> 常规 -> 附加库目录

C:\OSGeo4W\apps\Qt5\lib
C:\OSGeo4W\apps\qgis-dev\lib

链接器 -> 输入 -> 附加依赖项

qtmaind.lib
Qt5Cored.lib
Qt5Guid.lib
Qt5Widgetsd.lib
qgis_core.lib
qgis_app.lib
qgis_gui.lib

测试代码很简单:

主文件

#include <QtWidgets/QApplication>
#include <qgsapplication.h>
int main(int argc, char *argv[])
{
     QgsApplication a(argc, argv, true);
 //  QgsApplication::setPrefixPath("C:/path/to/OSGeo4W64/apps/qgis", true);
 //  QgsApplication::initQgis();
 //  ImageViewer w; 
 //  w.show();

     return a.exec(); 
}

但是,当我构建它时发生了错误,

(1)构造函数“QgsMapUnitScale::QgsMapUnitScale”的实例不匹配参数列表(qgsrendercontext.h)

(2)“M_PI”:未声明的标识符(qgsabstractgeometry.h)

这是构建错误消息

谁能给我一个建议?我很难理解 API 应该如何工作,而且文档很少。和关于 QGIS C++ 开发的资源在互联网上,甚至在 QGIS 官方网站上。

我感谢任何帮助,谢谢。

标签: c++qgis

解决方案


推荐阅读