Не удается найти qgsapplication.h и другие файлы заголовков

Я использую QtCreator и QGIS 2.6 для создания отдельного приложения на C ++.

Проблема, с которой я сталкиваюсь, заключается в том, что проект не может найти все необходимые заголовочные файлы.

Мой .pro файл выглядит следующим образом:

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=
}

И в моей программе ни один из следующих заголовков не найден:

#включают «<«Qgsapplication.h»>»

#включают «<«Qgsproviderregistry.h»>»

#включают «<«Qgssinglesymbolrenderer.h»>»

#включают «<«Qgsmaplayerregistry.h»>»

#включают «<«Qgsvectorlayer.h»>»

#включают «<«Qgsmapcanvas.h»>»

А из установленной папки qgis я не могу найти ни один из указанных выше заголовочных файлов.

Любая помощь приветствуется.

1

Решение

Я думаю, что для отладки вашего приложения вы должны добавить режим RelWithDebInfo в ваш файл проекта:

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

Другие решения

какая линия 28?

если это так:

win32:CONFIG(Release, Debug|Release, RelWithDebInfo)

Вы можете заменить его на:

win32:CONFIG(Release, RelWithDebInfo|Release)

и заменить это:

else:win32:CONFIG(Debug, Debug|Release, RelWithDebInfo)

с:

else:win32:CONFIG(RelWithDebInfo, RelWithDebInfo|Release)

потому что библиотеки Qgis ant Qt скомпилированы с режимом Release, поэтому, если вы хотите отлаживать ваше приложение, вы должны использовать режим RelWithDebInfo

0

По вопросам рекламы [email protected]