Добрый день. Пытаюсь создать плагин для Qt Designer'а со своими виджетами. Пока виджеты были независимы от других классов проекта всё было легко, понятно и делалось по прилагавшемуся к Qt примеру, но вот с появлением зависимостей (которые естественно тянут за собой другие зависимости) начались проблемы.
Сделал в каталоге с проектом .pri файл, в котором собрал файлы виджетов
INCLUDEPATH += $$PWD
HEADERS += $$PWD/gui/degree-widget.h \
$$PWD/gui/plotter-widget.h
SOURCES += $$PWD/gui/degree-widget.cpp \
$$PWD/gui/plotter-widget.cpp
FORMS += $$PWD/../ui/degree-widget.ui
Соответственно в проекте плагина подключил этот pri-файл
CONFIG += designer plugin
TARGET = m3widgetplugins
TEMPLATE = lib
QTDIR_build:DESTDIR = $$QT_BUILD_TREE/plugins/designer
include(../marshrut3/src/plugin.pri)
HEADERS += degree-widget-plugin.h \
plotter-widget-plugin.h \
m3-plugins.h
SOURCES += degree-widget-plugin.cpp \
plotter-widget-plugin.cpp \
m3-plugins.h
build_all:!build_pass {
CONFIG -= build_all
CONFIG += release
}
UI_DIR += ./.ui
MOC_DIR += ./.moc
OBJECTS_DIR += ./.obj
# install
target.path = $$[QT_INSTALL_PLUGINS]/designer
sources.files = $$SOURCES $$HEADERS *.pro
sources.path = $$[QT_INSTALL_EXAMPLES]/designer/degreeeditplugin
INSTALLS += target sources
При попытке сборки получаю пачку ошибок с указанием на файл основного проекта, который, напрямую по крайней мере, к виджетам вообще не подключен. Ошибки вылезают на использование std::min и std::max и выглядят примерно следующим образом
error C2589: (: недопустимая лексема справа от '::'
error C2143: синтаксическая ошибка: отсутствие ")" перед "::"
error C2589: (: недопустимая лексема справа от '::'
error C2143: синтаксическая ошибка: отсутствие ";" перед "::"
В основном проекте никаких проблем эти строки не вызывают.
Что может быть недоконфигурировано в проекте плагина?
Компилятор MS Visual Studio 2008