Не удается найти 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=
}

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

#include "<" qgsapplication.h ">"

#include "<" qgsproviderregistry.h ">"

#include "<" qgssinglesymbolrenderer.h ">"

#include "<" qgsmaplayerregistry.h ">"

#include "<" qgsvectorlayer.h ">"

#include "<" qgsmapcanvas.h ">"

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

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

2 ответа

Какая линия 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

Я думаю, что для отладки вашего приложения вы должны добавить режим 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=
}
Другие вопросы по тегам