1
Discussion | Обсуждение / Unresolved external symbol const LimeReport::ReportEngine::staticMetaObject
« on: December 10, 2021, 03:08:18 pm »
Здравствуйте, Алекс!
При очередной компиляции вылезла такая ошибка:
documentexportthread.obj:-1: ошибка: LNK2001: unresolved external symbol "public: static struct QMetaObject const LimeReport::ReportEngine::staticMetaObject" (?staticMetaObject@ReportEngine@LimeReport@@2UQMetaObject@@B)
Строки, в которых используется этот объект:
connect(m_reportEngine, &LimeReport::ReportEngine::renderStarted, this, &DocumentExportThread::renderStarted);
connect(m_reportEngine, &LimeReport::ReportEngine::renderPageFinished, this,
&DocumentExportThread::renderPageFinished);
connect(m_reportEngine, &LimeReport::ReportEngine::renderFinished, this, &DocumentExportThread::renderFinished);
При переходе к определению ReportEngine перекидывает на lrreportengine.h:
class LIMEREPORT_EXPORT ReportEngine : public QObject{
Q_OBJECT
friend class ReportDesignWidget;
friend class PreviewReportWidget;
....
Библиотека подключается в моём .pro как:
win32 {
INCLUDEPATH += $$PWD/../../include
!contains(QMAKE_TARGET.arch, x86_64) {
message("x86 build")
CONFIG(release, debug|release): LIBS += -L$$PWD/../../lib/win32/release/ -llimereport -lliblzma -lhidapi -lqt5xlsx -llibmysql -llibcrypto -llibssl
CONFIG(debug, debug|release): LIBS += -L$$PWD/../../lib/win32/debug/ -llimereportd -lliblzma -lhidapi -lqt5xlsxd -llibmysql -llibcrypto -llibssl
} else {
message("x86_64 build")
CONFIG(release, debug|release): LIBS += -L$$PWD/../../lib/win64/release/ -llimereport -lliblzma -lhidapi -lqt5xlsx -llibmysql -llibcrypto -llibssl
CONFIG(debug, debug|release): LIBS += -L$$PWD/../../lib/win64/debug/ -llimereportd -lliblzma -lhidapi -lqt5xlsxd -llibmysql -llibcrypto -llibssl
}
}
В каталоге ../../lib/win64/debug лежат файлы:
limereportd.dll 7 892 480 19.11.2021 17:20 ----
limereportd.lib 80 330 19.11.2021 17:20 -a--
QtZintd.dll 1 007 104 19.11.2021 17:17 ----
QtZintd.lib 14 526 19.11.2021 17:17 -a--
Библиотеки компилировал той же версией QT, что и мой основной проект, потом просто переложил готовые файлы библиотек в каталог lib/win64/debug
Что я делаю не так? Спасибо!
С уважением, Антон.
При очередной компиляции вылезла такая ошибка:
documentexportthread.obj:-1: ошибка: LNK2001: unresolved external symbol "public: static struct QMetaObject const LimeReport::ReportEngine::staticMetaObject" (?staticMetaObject@ReportEngine@LimeReport@@2UQMetaObject@@B)
Строки, в которых используется этот объект:
connect(m_reportEngine, &LimeReport::ReportEngine::renderStarted, this, &DocumentExportThread::renderStarted);
connect(m_reportEngine, &LimeReport::ReportEngine::renderPageFinished, this,
&DocumentExportThread::renderPageFinished);
connect(m_reportEngine, &LimeReport::ReportEngine::renderFinished, this, &DocumentExportThread::renderFinished);
При переходе к определению ReportEngine перекидывает на lrreportengine.h:
class LIMEREPORT_EXPORT ReportEngine : public QObject{
Q_OBJECT
friend class ReportDesignWidget;
friend class PreviewReportWidget;
....
Библиотека подключается в моём .pro как:
win32 {
INCLUDEPATH += $$PWD/../../include
!contains(QMAKE_TARGET.arch, x86_64) {
message("x86 build")
CONFIG(release, debug|release): LIBS += -L$$PWD/../../lib/win32/release/ -llimereport -lliblzma -lhidapi -lqt5xlsx -llibmysql -llibcrypto -llibssl
CONFIG(debug, debug|release): LIBS += -L$$PWD/../../lib/win32/debug/ -llimereportd -lliblzma -lhidapi -lqt5xlsxd -llibmysql -llibcrypto -llibssl
} else {
message("x86_64 build")
CONFIG(release, debug|release): LIBS += -L$$PWD/../../lib/win64/release/ -llimereport -lliblzma -lhidapi -lqt5xlsx -llibmysql -llibcrypto -llibssl
CONFIG(debug, debug|release): LIBS += -L$$PWD/../../lib/win64/debug/ -llimereportd -lliblzma -lhidapi -lqt5xlsxd -llibmysql -llibcrypto -llibssl
}
}
В каталоге ../../lib/win64/debug лежат файлы:
limereportd.dll 7 892 480 19.11.2021 17:20 ----
limereportd.lib 80 330 19.11.2021 17:20 -a--
QtZintd.dll 1 007 104 19.11.2021 17:17 ----
QtZintd.lib 14 526 19.11.2021 17:17 -a--
Библиотеки компилировал той же версией QT, что и мой основной проект, потом просто переложил готовые файлы библиотек в каталог lib/win64/debug
Что я делаю не так? Спасибо!
С уважением, Антон.