首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >找不到qgsapplication.h和其他头文件

找不到qgsapplication.h和其他头文件
EN

Stack Overflow用户
提问于 2014-11-14 07:43:58
回答 2查看 652关注 0票数 1

我正在使用QtCreator和QGIS2.6构建一个独立的C++应用程序。

我遇到的问题是项目找不到所有必要的头文件。

我的.pro文件看起来如下所示:

代码语言:javascript
复制
QT += core gui xml
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = TestQgis2
TEMPLATE = app
SOURCES += main.cpp
#HEADERS +=YOUR HEADERS
#FORMS += YOUR FORMS
#RESOURCES += images/images.qrc

win32:CONFIG(Release, Debug|Release) {
 LIBS += -L"C:/Program Files (x86)/QGIS Brighton/lib/" -lQtCore4
 LIBS += -L"C:/Program Files (x86)/QGIS Brighton/lib/" -lQtGui4
 LIBS += -L"C:/Program Files (x86)/QGIS Brighton/lib/" -lQtXml4
 LIBS += -L"C:/Program Files (x86)/QGIS Brighton/apps/qgis/bin/" -lqgis_core
 LIBS += -L"C:/Program Files (x86)/QGIS Brighton/apps/qgis/bin/" -lqgis_gui
}
else:win32:CONFIG(Debug, Debug|Release) {
 PRE_TARGETDEPS += C:/Program Files (x86)/QGIS Brighton/lib/QtCored4.lib
 PRE_TARGETDEPS += C:/Program Files (x86)/QGIS Brighton/lib/QtGuid4.lib
 PRE_TARGETDEPS += C:/Program Files (x86)/QGIS Brighton/lib/QtXmld4.lib
 LIBS += -L"C:/Program Files (x86)/QGIS Brighton/lib/" -lQtCored4
 LIBS += -L"C:/Program Files (x86)/QGIS Brighton/lib/" -lQtGuid4
 LIBS += -L"C:/Program Files (x86)/QGIS Brighton/lib/" -lQtXmld4
 LIBS += -L"C:/Program Files (x86)/QGIS Brighton/apps/qgis/bin/" -lqgis_core
 LIBS += -L"C:/Program Files (x86)/QGIS Brighton/apps/qgis/bin/" -lqgis_gui
}
win32:{
 INCLUDEPATH += C:/Program Files (x86)/QGIS Brighton/include
 DEPENDPATH +=  C:/Program Files (x86)/QGIS Brighton/include
# INCLUDEPATH += C:/OSGeo4W/apps/qgis-dev/include
# DEPENDPATH += C:/OSGeo4W/apps/qgis-dev/include
 DEFINES += GUI_EXPORT=__declspec(dllimport) CORE_EXPORT=__declspec(dllimport)
}
unix {
 LIBS += -L/usr/local/lib/ -lqgis_core -lqgis_gui
 LIBS += -L/usr/local/lib/qgis/plugins/ -lgdalprovider
 INCLUDEPATH += /usr/local/include/qgis
 DEFINES += GUI_EXPORT= CORE_EXPORT=
}

在我的程序中,找不到以下任何一个标头:

#include "<"qgsapplication.h">“

#include "<"qgsproviderregistry.h">“

#include "<"qgssinglesymbolrenderer.h">“

#include "<"qgsmaplayerregistry.h">“

#include "<"qgsvectorlayer.h">“

#include "<"qgsmapcanvas.h">“

在已安装的qgis文件夹中,我找不到上述任何头文件。

任何帮助都是非常感谢的。

EN

回答 2

Stack Overflow用户

发布于 2014-11-20 16:43:11

要调试您的应用程序,我认为您必须在项目文件中添加RelWithDebInfo模式:

代码语言:javascript
复制
QT += core gui xml
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = TestQgis2
TEMPLATE = app
SOURCES += main.cpp
#HEADERS +=YOUR HEADERS
#FORMS += YOUR FORMS
#RESOURCES += images/images.qrc

win32:CONFIG(Release, Debug|Release, RelWithDebInfo) {
 LIBS += -L"C:/OSGeo4W/apps/qgis/lib/" -lQtCore4
 LIBS += -L"C:/OSGeo4W/apps/qgis/lib/" -lQtGui4
 LIBS += -L"C:/OSGeo4W/apps/qgis/lib/" -lQtXml4
 LIBS += -L"C:/OSGeo4W/apps/qgis/bin/" -lqgis_core
 LIBS += -L"C:/OSGeo4W/apps/qgis/bin/" -lqgis_gui
}
else:win32:CONFIG(Debug, Debug|Release, RelWithDebInfo) {
 PRE_TARGETDEPS += C:/OSGeo4W/lib/QtCored4.lib
 PRE_TARGETDEPS += C:/OSGeo4W/lib/QtGuid4.lib
 PRE_TARGETDEPS += C:/OSGeo4W/lib/QtXmld4.lib
 LIBS += -L"C:/OSGeo4W/lib/" -lQtCored4
 LIBS += -L"C:/OSGeo4W/lib/" -lQtGuid4
 LIBS += -L"C:/OSGeo4W/lib/" -lQtXmld4
 LIBS += -L"C:/OSGeo4W/apps/qgis/bin/" -lqgis_core
 LIBS += -L"C:/OSGeo4W/apps/qgis/bin/" -lqgis_gui
}
win32:{
 INCLUDEPATH += C:/OSGeo4W/include
 DEPENDPATH +=  C:/OSGeo4W/include
# INCLUDEPATH += C:/OSGeo4W/apps/qgis/include
# DEPENDPATH += C:/OSGeo4W/apps/qgis/include
 DEFINES += GUI_EXPORT=__declspec(dllimport) CORE_EXPORT=__declspec(dllimport)
}
unix {
 LIBS += -L/usr/local/lib/ -lqgis_core -lqgis_gui
 LIBS += -L/usr/local/lib/qgis/plugins/ -lgdalprovider
 INCLUDEPATH += /usr/local/include/qgis
 DEFINES += GUI_EXPORT= CORE_EXPORT=
}
票数 0
EN

Stack Overflow用户

发布于 2014-11-21 17:58:41

哪一行是28行?

如果是这样的话:

代码语言:javascript
复制
win32:CONFIG(Release, Debug|Release, RelWithDebInfo)

您可以将其替换为:

代码语言:javascript
复制
win32:CONFIG(Release, RelWithDebInfo|Release)

并替换为:

代码语言:javascript
复制
else:win32:CONFIG(Debug, Debug|Release, RelWithDebInfo)

通过以下方式:

代码语言:javascript
复制
else:win32:CONFIG(RelWithDebInfo, RelWithDebInfo|Release)

因为Qgis库是使用发布模式编译的,所以如果要调试应用程序,就必须使用RelWithDebInfo模式

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26920574

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档