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

Reply via email to