Yea, it builds fine when I reorder them in my CMakeLists. My ‘invalid’ CMakeLists part dealing with external libraries looks like this:
# global target link libraries target_link_libraries(${TARGET_FULL_NAME} PRIVATE Qt5::Core Qt5::Sql Qt5::Network Qt5::Concurrent Qt5::WebSockets ${BOX2D_LIBRARY} ${LZ4_LIBRARY} ) # on unix-based systems we use static qt build - add some stuff to target link libraries if (LINUX) target_link_libraries(${TARGET_FULL_NAME} PRIVATE Qt5::QPSQLDriverPlugin Qt5::QSQLiteDriverPlugin "libpq.so" ) endif() # small hack to properly set LZ4 library between build modes if (CMAKE_BUILD_TYPE STREQUAL "Debug") (${TARGET_FULL_NAME} PRIVATE ${LZ4_LIBRARY_DEBUG}) else () target_link_libraries(${TARGET_FULL_NAME} PRIVATE ${LZ4_LIBRARY_RELEASE}) endif (CMAKE_BUILD_TYPE STREQUAL "Debug") I don’t use any more target_link_libraries functions in there so I don’t know from where this extra libQt5Network come from. Do you have any idea why it actually builds this way under Release mode? >From what I see, order of the libraries are the same between Release and Debug >and only Debug generates those errors. // RELEASE /usr/local/Qt-5.13.0/lib/libQt5Core.a /usr/local/Qt-5.13.0/lib/libQt5Sql.a /usr/local/Qt-5.13.0/lib/libQt5Network.a /usr/local/Qt-5.13.0/lib/libQt5Concurrent.a /usr/local/Qt-5.13.0/lib/libQt5WebSockets.a /home/izowiuz/vcpkg/installed/x64-linux/lib/libBox2D.a /usr/local/Qt-5.13.0/plugins/sqldrivers/libqsqlpsql.a /usr/local/Qt-5.13.0/plugins/sqldrivers/libqsqlite.a -lpq /home/izowiuz/vcpkg/installed/x64-linux/lib/liblz4.a /usr/local/Qt-5.13.0/lib/libQt5Network.a /usr/local/Qt-5.13.0/lib/libQt5Core.a -lpthread /usr/local/Qt-5.13.0/lib/libQt5Network.a /usr/local/Qt-5.13.0/lib/libQt5Core.a -lm /usr/local/Qt-5.13.0/lib/libqtpcre2.a -ldl -lssl -lcrypto // DEBUG /usr/local/Qt-5.13.0/lib/libQt5Core.a /usr/local/Qt-5.13.0/lib/libQt5Sql.a /usr/local/Qt-5.13.0/lib/libQt5Network.a /usr/local/Qt-5.13.0/lib/libQt5Concurrent.a /usr/local/Qt-5.13.0/lib/libQt5WebSockets.a /home/izowiuz/vcpkg/installed/x64-linux/debug/lib/libBox2D.a /usr/local/Qt-5.13.0/plugins/sqldrivers/libqsqlpsql.a /usr/local/Qt-5.13.0/plugins/sqldrivers/libqsqlite.a -lpq /home/izowiuz/vcpkg/installed/x64-linux/debug/lib/liblz4d.a /usr/local/Qt-5.13.0/lib/libQt5Network.a /usr/local/Qt-5.13.0/lib/libQt5Core.a -lpthread /usr/local/Qt-5.13.0/lib/libQt5Network.a /usr/local/Qt-5.13.0/lib/libQt5Core.a -lm /usr/local/Qt-5.13.0/lib/libqtpcre2.a -ldl -lssl -lcrypto Narolewski Jakub From: Thiago Macieira Sent: 25 August 2019 17:46 To: interest@qt-project.org Subject: Re: [Interest] Static build of Qt - debug mode and plugins On Sunday, 25 August 2019 00:25:50 PDT Jakub Narolewski wrote: > /usr/local/Qt-5.13.0/lib/libQt5Core.a > /usr/local/Qt-5.13.0/lib/libQt5Sql.a > /usr/local/Qt-5.13.0/lib/libQt5Network.a > /usr/local/Qt-5.13.0/lib/libQt5Concurrent.a > /usr/local/Qt-5.13.0/lib/libQt5WebSockets.a > /home/izowiuz/vcpkg/installed/x64-linux/lib/libBox2D.a > /usr/local/Qt-5.13.0/plugins/sqldrivers/libqsqlpsql.a > /usr/local/Qt-5.13.0/plugins/sqldrivers/libqsqlite.a > -lpq > /home/izowiuz/vcpkg/installed/x64-linux/lib/liblz4.a > /usr/local/Qt-5.13.0/lib/libQt5Network.a > /usr/local/Qt-5.13.0/lib/libQt5Core.a -lpthread > /usr/local/Qt-5.13.0/lib/libQt5Network.a > /usr/local/Qt-5.13.0/lib/libQt5Core.a -lm > /usr/local/Qt-5.13.0/lib/libqtpcre2.a -ldl -lssl -lcrypto The order is wrong, as you can see. libQt5Sql.a appears before the plugins. Invert the order and make the plugins appear before the library in this link line. It's interesting that the order is mostly correct. It seems that CMake is applying dependency sorting correctly. If that is the case, then either it's a CMake bug or there's some information missing in the qmake-generated CMake files. Reporting a bug here is unlikely to get you enough attention, so you may want to get your hands dirty and debug yourself. It's also interesting that QtCore and QtNetwork are listed three times. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel System Software Products _______________________________________________ Interest mailing list Interest@qt-project.org https://lists.qt-project.org/listinfo/interest
_______________________________________________ Interest mailing list Interest@qt-project.org https://lists.qt-project.org/listinfo/interest