Hello :] I'm having a bit of a problem compiling my application in debug build mode under Linux. Generally, under *nixes, I'm using self build, static Qt version. To configure Qt I'm using this simple one-liner:
// CONFIGURE START ./configure \ -opensource \ -confirm-license \ -static \ -debug \ -openssl-linked \ -qt-zlib \ -qt-pcre \ -no-gui \ -no-dbus \ -no-accessibility \ -no-opengl \ -no-pkg-config \ -no-libjpeg \ -no-libpng \ -no-harfbuzz \ -no-freetype \ -no-xcb \ -no-xkbcommon \ -no-feature-xml \ -no-feature-testlib \ -no-feature-gif \ -no-feature-ico \ -no-feature-texthtmlparser \ -no-feature-textodfwriter \ -no-feature-effects \ -no-feature-im \ -no-feature-dom \ -no-feature-filesystemmodel \ -no-feature-graphicsview \ -no-feature-graphicseffect \ -no-feature-sizegrip \ -no-feature-calendarwidget \ -no-feature-printpreviewwidget \ -no-feature-keysequenceedit \ -no-feature-colordialog \ -no-feature-filedialog \ -no-feature-fontdialog \ -no-feature-printpreviewdialog \ -no-feature-progressdialog \ -no-feature-inputdialog \ -no-feature-errormessage \ -no-feature-wizard \ -no-feature-datawidgetmapper \ -no-feature-imageformat_bmp \ -no-feature-imageformat_ppm \ -no-feature-imageformat_xbm \ -no-feature-imageformat_png \ -no-feature-imageformat_jpeg \ -no-feature-image_heuristic_mask \ -no-feature-image_text \ -no-feature-colornames \ -no-feature-cups \ -no-feature-paint_debug \ -no-feature-freetype \ -no-feature-translation \ -no-feature-codecs \ -no-feature-big_codecs \ -no-feature-ftp \ -no-feature-bearermanagement \ -no-feature-completer \ -no-feature-fscompleter \ -no-feature-desktopservices \ -no-feature-mimetype \ -no-feature-systemtrayicon \ -no-feature-undocommand \ -no-feature-undostack \ -no-feature-undogroup \ -no-feature-undoview \ -no-feature-statemachine \ -nomake examples \ -nomake tests \ -skip qt3d \ -skip qtandroidextras \ -skip qtcanvas3d \ -skip qtcharts \ -skip qtconnectivity \ -skip qtdatavis3d \ -skip qtdeclarative \ -skip qtdoc \ -skip qtgamepad \ -skip qtgraphicaleffects \ -skip qtimageformats \ -skip qtlocation \ -skip qtmacextras \ -skip qtmultimedia \ -skip qtnetworkauth \ -skip qtpurchasing \ -skip qtquickcontrols \ -skip qtquickcontrols2 \ -skip qtscript \ -skip qtscxml \ -skip qtsensors \ -skip qtserialbus \ -skip qtserialport \ -skip qtspeech \ -skip qtsvg \ -skip qttools \ -skip qttranslations \ -skip qtvirtualkeyboard \ -skip qtwayland \ -skip qtwebchannel \ -skip qtwebengine \ -skip qtwebview \ -skip qtwinextras \ -skip qtx11extras \ -skip qtremoteobjects \ -skip qtxmlpatterns // CONFIGURE END Application compiles and runs fine - but only in Release mode. As soon as I switch to debug versions of Qt and app I'm getting errors: // ERRORS START [ 1%] Linking CXX executable mrserver_debug /usr/local/Qt-5.13.0/plugins/sqldrivers/libqsqlpsql.a(main.o): In function `QPSQLDriverPlugin::~QPSQLDriverPlugin()': /home/izowiuz/qt/qt-everywhere-src-5.13.0/qtbase/src/plugins/sqldrivers/psql/main.cpp:46: undefined reference to `QSqlDriverPlugin::~QSqlDriverPlugin()' /usr/local/Qt-5.13.0/plugins/sqldrivers/libqsqlpsql.a(main.o): In function `QPSQLDriverPlugin::~QPSQLDriverPlugin()': /home/izowiuz/qt/qt-everywhere-src-5.13.0/qtbase/src/plugins/sqldrivers/psql/main.cpp:46: undefined reference to `QSqlDriverPlugin::~QSqlDriverPlugin()' /usr/local/Qt-5.13.0/plugins/sqldrivers/libqsqlpsql.a(main.o): In function `QPSQLDriverPlugin::QPSQLDriverPlugin()': /home/izowiuz/qt/qt-everywhere-src-5.13.0/qtbase/src/plugins/sqldrivers/psql/main.cpp:58: undefined reference to `QSqlDriverPlugin::QSqlDriverPlugin(QObject*)' /usr/local/Qt-5.13.0/plugins/sqldrivers/libqsqlite.a(smain.o): In function `QSQLiteDriverPlugin::~QSQLiteDriverPlugin()': /home/izowiuz/qt/qt-everywhere-src-5.13.0/qtbase/src/plugins/sqldrivers/sqlite/smain.cpp:46: undefined reference to `QSqlDriverPlugin::~QSqlDriverPlugin()' /usr/local/Qt-5.13.0/plugins/sqldrivers/libqsqlite.a(smain.o): In function `QSQLiteDriverPlugin::~QSQLiteDriverPlugin()': /home/izowiuz/qt/qt-everywhere-src-5.13.0/qtbase/src/plugins/sqldrivers/sqlite/smain.cpp:46: undefined reference to `QSqlDriverPlugin::~QSqlDriverPlugin()' /usr/local/Qt-5.13.0/plugins/sqldrivers/libqsqlite.a(smain.o): In function `QSQLiteDriverPlugin::QSQLiteDriverPlugin()': /home/izowiuz/qt/qt-everywhere-src-5.13.0/qtbase/src/plugins/sqldrivers/sqlite/smain.cpp:58: undefined reference to `QSqlDriverPlugin::QSqlDriverPlugin(QObject*)' /usr/local/Qt-5.13.0/plugins/sqldrivers/libqsqlite.a(qsql_sqlite.o): In function `QSQLiteResult::virtual_hook(int, void*)': /home/izowiuz/qt/qt-everywhere-src-5.13.0/qtbase/src/plugins/sqldrivers/sqlite/qsql_sqlite.cpp:377: undefined reference to `QSqlCachedResult::virtual_hook(int, void*)' /usr/local/Qt-5.13.0/plugins/sqldrivers/libqsqlite.a(qsql_sqlite.o): In function `QSQLiteResultPrivate::QSQLiteResultPrivate(QSQLiteResult*, QSQLiteDriver const*)': /home/izowiuz/qt/qt-everywhere-src-5.13.0/qtbase/src/plugins/sqldrivers/sqlite/qsql_sqlite.cpp:179: undefined reference to `QSqlCachedResultPrivate::QSqlCachedResultPrivate(QSqlCachedResult*, QSqlDriver const*)' /usr/local/Qt-5.13.0/plugins/sqldrivers/libqsqlite.a(qsql_sqlite.o): In function `QSQLiteResultPrivate::cleanup()': /home/izowiuz/qt/qt-everywhere-src-5.13.0/qtbase/src/plugins/sqldrivers/sqlite/qsql_sqlite.cpp:192: undefined reference to `QSqlCachedResult::cleanup()' /usr/local/Qt-5.13.0/plugins/sqldrivers/libqsqlite.a(qsql_sqlite.o): In function `QSQLiteResultPrivate::initColumns(bool)': /home/izowiuz/qt/qt-everywhere-src-5.13.0/qtbase/src/plugins/sqldrivers/sqlite/qsql_sqlite.cpp:211: undefined reference to `QSqlCachedResult::init(int)' /usr/local/Qt-5.13.0/plugins/sqldrivers/libqsqlite.a(qsql_sqlite.o): In function `QSQLiteResult::QSQLiteResult(QSQLiteDriver const*)': /home/izowiuz/qt/qt-everywhere-src-5.13.0/qtbase/src/plugins/sqldrivers/sqlite/qsql_sqlite.cpp:361: undefined reference to `QSqlCachedResult::QSqlCachedResult(QSqlCachedResultPrivate&)' /usr/local/Qt-5.13.0/plugins/sqldrivers/libqsqlite.a(qsql_sqlite.o): In function `QSQLiteResult::exec()': /home/izowiuz/qt/qt-everywhere-src-5.13.0/qtbase/src/plugins/sqldrivers/sqlite/qsql_sqlite.cpp:452: undefined reference to `QSqlCachedResult::clearValues()' /usr/local/Qt-5.13.0/plugins/sqldrivers/libqsqlite.a(qsql_sqlite.o): In function `QSQLiteResult::~QSQLiteResult()': /home/izowiuz/qt/qt-everywhere-src-5.13.0/qtbase/include/QtSql/5.13.0/QtSql/private/../../../../../src/sql/kernel/qsqlcachedresult_p.h:65: undefined reference to `vtable for QSqlCachedResult' /usr/local/Qt-5.13.0/plugins/sqldrivers/libqsqlite.a(qsql_sqlite.o):(.data.rel.ro._ZTI13QSQLiteResult[_ZTI13QSQLiteResult]+0x10): undefined reference to `typeinfo for QSqlCachedResult' /usr/local/Qt-5.13.0/plugins/sqldrivers/libqsqlite.a(qsql_sqlite.o):(.data.rel.ro._ZTV13QSQLiteResult[_ZTV13QSQLiteResult]+0x80): undefined reference to `QSqlCachedResult::data(int)' /usr/local/Qt-5.13.0/plugins/sqldrivers/libqsqlite.a(qsql_sqlite.o):(.data.rel.ro._ZTV13QSQLiteResult[_ZTV13QSQLiteResult]+0x88): undefined reference to `QSqlCachedResult::isNull(int)' /usr/local/Qt-5.13.0/plugins/sqldrivers/libqsqlite.a(qsql_sqlite.o):(.data.rel.ro._ZTV13QSQLiteResult[_ZTV13QSQLiteResult]+0x98): undefined reference to `QSqlCachedResult::fetch(int)' /usr/local/Qt-5.13.0/plugins/sqldrivers/libqsqlite.a(qsql_sqlite.o):(.data.rel.ro._ZTV13QSQLiteResult[_ZTV13QSQLiteResult]+0xa0): undefined reference to `QSqlCachedResult::fetchNext()' /usr/local/Qt-5.13.0/plugins/sqldrivers/libqsqlite.a(qsql_sqlite.o):(.data.rel.ro._ZTV13QSQLiteResult[_ZTV13QSQLiteResult]+0xa8): undefined reference to `QSqlCachedResult::fetchPrevious()' /usr/local/Qt-5.13.0/plugins/sqldrivers/libqsqlite.a(qsql_sqlite.o):(.data.rel.ro._ZTV13QSQLiteResult[_ZTV13QSQLiteResult]+0xb0): undefined reference to `QSqlCachedResult::fetchFirst()' /usr/local/Qt-5.13.0/plugins/sqldrivers/libqsqlite.a(qsql_sqlite.o):(.data.rel.ro._ZTV13QSQLiteResult[_ZTV13QSQLiteResult]+0xb8): undefined reference to `QSqlCachedResult::fetchLast()' /usr/local/Qt-5.13.0/plugins/sqldrivers/libqsqlite.a(qsql_sqlite.o):(.data.rel.ro._ZTV13QSQLiteResult[_ZTV13QSQLiteResult]+0xf8): undefined reference to `QSqlCachedResult::setNumericalPrecisionPolicy(QSql::NumericalPrecisionPolicy)' collect2: error: ld returned 1 exit status CMakeFiles/mrserver_debug.dir/build.make:824: recipe for target 'mrserver_debug' failed make[2]: *** [mrserver_debug] Error 1 CMakeFiles/Makefile2:72: recipe for target 'CMakeFiles/mrserver_debug.dir/all' failed make[1]: *** [CMakeFiles/mrserver_debug.dir/all] Error 2 Makefile:151: recipe for target 'all' failed make: *** [all] Error 2 // ERRORS END This looks like errors caused by missing Q_IMPORT_PLUGIN stuff on my side. Which is funky, because on top of my main.cpp file I have: #if defined(Q_OS_LINUX) Q_IMPORT_PLUGIN(QPSQLDriverPlugin) Q_IMPORT_PLUGIN(QSQLiteDriverPlugin) #endif And in my CMakeLists: if (LINUX) target_link_libraries(${TARGET_FULL_NAME} PRIVATE Qt5::QPSQLDriverPlugin Qt5::QSQLiteDriverPlugin "libpq.so" ) endif() I have tried removing "#if defined(Q_OS_LINUX)" in .cpp and my "if (LINUX)" check from CMakeLists but errors persists. I’m currently using Qt 5.13.0 Any help will be appreciated, Narolewski Jakub
_______________________________________________ Interest mailing list Interest@qt-project.org https://lists.qt-project.org/listinfo/interest