Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Qt already updated to 5.14.1, but why it still uses MSVC 2017 build tools?
QtWS25 Last Chance

Qt already updated to 5.14.1, but why it still uses MSVC 2017 build tools?

Scheduled Pinned Locked Moved Unsolved General and Desktop
32 Posts 7 Posters 4.3k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • B BAHRAMUDIN ADIL

    I am wondering, why the Qt team does not consider to use new build tools? It still uses the tools which belong to 4 years ago, but now many users are using MSVC 2019, and next soon will jump to the more newer version. I think the best way is to consider the current development environment, I saw many people against this problem.

    I am afraid in the next version they still using MSVC 2017.

    aha_1980A Offline
    aha_1980A Offline
    aha_1980
    Lifetime Qt Champion
    wrote on last edited by
    #2

    Hi @BAHRAMUDIN-ADIL,

    you can compile Qt yourself with any compiler you like.

    The pre-build version is still on MSVC2017 for maximum compatibility. As MSVC2019 is fully compatible with that, you can still use the newer compiler for your apps.

    Regards

    Qt has to stay free or it will die.

    B 1 Reply Last reply
    2
    • SGaistS Offline
      SGaistS Offline
      SGaist
      Lifetime Qt Champion
      wrote on last edited by
      #3

      Hi,

      To add to @aha_1980, if you want a more official answer, then you should bring that question to the interest mailing list.

      Interested in AI ? www.idiap.ch
      Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

      1 Reply Last reply
      2
      • aha_1980A aha_1980

        Hi @BAHRAMUDIN-ADIL,

        you can compile Qt yourself with any compiler you like.

        The pre-build version is still on MSVC2017 for maximum compatibility. As MSVC2019 is fully compatible with that, you can still use the newer compiler for your apps.

        Regards

        B Offline
        B Offline
        BAHRAMUDIN ADIL
        wrote on last edited by
        #4

        @aha_1980 Yes I know to compile, but compiling needs its own tools and environment, which not all the users will have it, so it is not a good solution. Why I am asking this? Because I getting an error with MSVC 2019 which is installed in my machine, but the Qt asks me for the 2017 version which I do not have and do not want to have.

        aha_1980A 1 Reply Last reply
        0
        • B BAHRAMUDIN ADIL

          @aha_1980 Yes I know to compile, but compiling needs its own tools and environment, which not all the users will have it, so it is not a good solution. Why I am asking this? Because I getting an error with MSVC 2019 which is installed in my machine, but the Qt asks me for the 2017 version which I do not have and do not want to have.

          aha_1980A Offline
          aha_1980A Offline
          aha_1980
          Lifetime Qt Champion
          wrote on last edited by
          #5

          @BAHRAMUDIN-ADIL said in Qt already updated to 5.14.1, but why it still uses MSVC 2017 build tools?:

          Because I getting an error with MSVC 2019

          Which error exactly?

          I'm using Qt 5.14.1/MSVC2017 together with MSVC2019 and that seems to work.

          Regards

          Qt has to stay free or it will die.

          B 1 Reply Last reply
          1
          • aha_1980A aha_1980

            @BAHRAMUDIN-ADIL said in Qt already updated to 5.14.1, but why it still uses MSVC 2017 build tools?:

            Because I getting an error with MSVC 2019

            Which error exactly?

            I'm using Qt 5.14.1/MSVC2017 together with MSVC2019 and that seems to work.

            Regards

            B Offline
            B Offline
            BAHRAMUDIN ADIL
            wrote on last edited by
            #6

            @aha_1980 The first thing is the warning which Qt gives me which says: Qt is not compatible with MSVC 2019. OK, this is a warning so skip it.

            But the error is I am not able to use MySQL drivers to connect to the database, I have already added the DLL and libs into Qt bin and in my project as well, but still not working and gives error while compiling, and when I switch to another machine which has the same version of Qt but MSVC 2017 installed it works well. Then how to explain this?

            Thanks!

            1 Reply Last reply
            0
            • J.HilkJ Offline
              J.HilkJ Offline
              J.Hilk
              Moderators
              wrote on last edited by
              #7

              The Qt Framework is big, has lots of features and modules and classes.

              If the new compiler only has marginal changes (like one clang/gcc version to an other) you can rather safely upgrade/support the new version after reading the changelog.

              Microsoft until recently, totally broke binary compatibility with each MSVC release and god only knows what they are currently doing.

              So upgrading / supporting a new MSVC version will require extensive testing and I assume that's simply not yet done/finished.

              I personally already run into Qtmsvc2017 and 2019 incompatibility issues. The Qt support answered me with: Thanks for the report we will look into it, but 2019 is not yet officially supported, we suggest to use 2017.
              And that's what I ended up doing.

              I only used msvc2019 in the first place, because MS makes ist unnecessarily difficult to download older compiler version!😡

              What msvc2019 feature is so important that you have to use that compiler ?

              gives error while compiling,

              what error?


              Be aware of the Qt Code of Conduct, when posting : https://forum.qt.io/topic/113070/qt-code-of-conduct


              Q: What's that?
              A: It's blue light.
              Q: What does it do?
              A: It turns blue.

              B 2 Replies Last reply
              4
              • J.HilkJ J.Hilk

                The Qt Framework is big, has lots of features and modules and classes.

                If the new compiler only has marginal changes (like one clang/gcc version to an other) you can rather safely upgrade/support the new version after reading the changelog.

                Microsoft until recently, totally broke binary compatibility with each MSVC release and god only knows what they are currently doing.

                So upgrading / supporting a new MSVC version will require extensive testing and I assume that's simply not yet done/finished.

                I personally already run into Qtmsvc2017 and 2019 incompatibility issues. The Qt support answered me with: Thanks for the report we will look into it, but 2019 is not yet officially supported, we suggest to use 2017.
                And that's what I ended up doing.

                I only used msvc2019 in the first place, because MS makes ist unnecessarily difficult to download older compiler version!😡

                What msvc2019 feature is so important that you have to use that compiler ?

                gives error while compiling,

                what error?

                B Offline
                B Offline
                BAHRAMUDIN ADIL
                wrote on last edited by
                #8

                @J-Hilk Thanks for the explanation. I know it is not an easy job needs a lot of tests, but on the other hand, if you persist to do not support the newer version, then it may cause to lose your users by the time because people they going to use the newer version and leave the older one some of them because of security problem, some of them maybe because of compatibility problem.
                You asked me why I want to use MSVC 2019? It is because I am using some libs which recommended to MSVC 2019. And our team development is based on MSVC 2019.

                1 Reply Last reply
                0
                • J.HilkJ J.Hilk

                  The Qt Framework is big, has lots of features and modules and classes.

                  If the new compiler only has marginal changes (like one clang/gcc version to an other) you can rather safely upgrade/support the new version after reading the changelog.

                  Microsoft until recently, totally broke binary compatibility with each MSVC release and god only knows what they are currently doing.

                  So upgrading / supporting a new MSVC version will require extensive testing and I assume that's simply not yet done/finished.

                  I personally already run into Qtmsvc2017 and 2019 incompatibility issues. The Qt support answered me with: Thanks for the report we will look into it, but 2019 is not yet officially supported, we suggest to use 2017.
                  And that's what I ended up doing.

                  I only used msvc2019 in the first place, because MS makes ist unnecessarily difficult to download older compiler version!😡

                  What msvc2019 feature is so important that you have to use that compiler ?

                  gives error while compiling,

                  what error?

                  B Offline
                  B Offline
                  BAHRAMUDIN ADIL
                  wrote on last edited by
                  #9

                  @J-Hilk One problem I am getting while using Qt with MSVC 2019, my code not getting compiled:

                  main.obj:-1: error: LNK2019: unresolved external symbol "__declspec(dllimport) public: __cdecl QSqlDatabase::~QSqlDatabase(void)" (__imp_??1QSqlDatabase@@QEAA@XZ) referenced in function main
                  

                  But same code works well with Qt + MSVC 2017.

                  1 Reply Last reply
                  0
                  • Christian EhrlicherC Offline
                    Christian EhrlicherC Offline
                    Christian Ehrlicher
                    Lifetime Qt Champion
                    wrote on last edited by
                    #10

                    @BAHRAMUDIN-ADIL said in Qt already updated to 5.14.1, but why it still uses MSVC 2017 build tools?:

                    But same code works well with Qt + MSVC 2017.

                    I doubt that - I would guess you don't link against the Qt sql library. Please show us your .pro file and/or make sure you're linking against the correct libraries you need.

                    Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
                    Visit the Qt Academy at https://academy.qt.io/catalog

                    B 1 Reply Last reply
                    2
                    • Christian EhrlicherC Christian Ehrlicher

                      @BAHRAMUDIN-ADIL said in Qt already updated to 5.14.1, but why it still uses MSVC 2017 build tools?:

                      But same code works well with Qt + MSVC 2017.

                      I doubt that - I would guess you don't link against the Qt sql library. Please show us your .pro file and/or make sure you're linking against the correct libraries you need.

                      B Offline
                      B Offline
                      BAHRAMUDIN ADIL
                      wrote on last edited by
                      #11

                      @Christian-Ehrlicher It is the .pro file content:

                      QT -= gui
                      
                      CONFIG += c++11 console sql
                      CONFIG -= app_bundle
                      
                      # The following define makes your compiler emit warnings if you use
                      # any Qt feature that has been marked deprecated (the exact warnings
                      # depend on your compiler). Please consult the documentation of the
                      # deprecated API in order to know how to port your code away from it.
                      DEFINES += QT_DEPRECATED_WARNINGS
                      
                      # You can also make your code fail to compile if it uses deprecated APIs.
                      # In order to do so, uncomment the following line.
                      # You can also select to disable deprecated APIs only up to a certain version of Qt.
                      #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0
                      
                      SOURCES += \
                              main.cpp
                      
                      # Default rules for deployment.
                      qnx: target.path = /tmp/$${TARGET}/bin
                      else: unix:!android: target.path = /opt/$${TARGET}/bin
                      !isEmpty(target.path): INSTALLS += target
                      

                      I have all the DLL and libs files in the Qt installed location bin/lib folder.

                      1 Reply Last reply
                      0
                      • S Offline
                        S Offline
                        SimonSchroeder
                        wrote on last edited by
                        #12

                        According to the documentation (https://doc.qt.io/qt-5/qsqldatabase.html) you should add

                        QT += sql
                        

                        to your .pro file. This tells the compiler to link with the SQL plugin.

                        B 2 Replies Last reply
                        2
                        • S SimonSchroeder

                          According to the documentation (https://doc.qt.io/qt-5/qsqldatabase.html) you should add

                          QT += sql
                          

                          to your .pro file. This tells the compiler to link with the SQL plugin.

                          B Offline
                          B Offline
                          BAHRAMUDIN ADIL
                          wrote on last edited by BAHRAMUDIN ADIL
                          #13

                          @SimonSchroeder Thanks! I will try it.

                          SGaistS 1 Reply Last reply
                          0
                          • B BAHRAMUDIN ADIL

                            @SimonSchroeder Thanks! I will try it.

                            SGaistS Offline
                            SGaistS Offline
                            SGaist
                            Lifetime Qt Champion
                            wrote on last edited by SGaist
                            #14

                            @BAHRAMUDIN-ADIL said in Qt already updated to 5.14.1, but why it still uses MSVC 2017 build tools?:

                            @SimonSchroeder If you see carefully I have already added sql

                            To the wrong variable. You added it to CONFIG but you shall add it to QT as @SimonSchroeder wrote.

                            [edit: Answer to the original post SGaist]

                            Interested in AI ? www.idiap.ch
                            Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                            B 1 Reply Last reply
                            2
                            • S SimonSchroeder

                              According to the documentation (https://doc.qt.io/qt-5/qsqldatabase.html) you should add

                              QT += sql
                              

                              to your .pro file. This tells the compiler to link with the SQL plugin.

                              B Offline
                              B Offline
                              BAHRAMUDIN ADIL
                              wrote on last edited by
                              #15

                              @SimonSchroeder Yes, I did not add the SQL module correctly in .pro file. But now I got this error:

                              QSqlDatabase: QMYSQL driver not loaded
                              QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7
                              
                              J.HilkJ SGaistS 2 Replies Last reply
                              0
                              • SGaistS SGaist

                                @BAHRAMUDIN-ADIL said in Qt already updated to 5.14.1, but why it still uses MSVC 2017 build tools?:

                                @SimonSchroeder If you see carefully I have already added sql

                                To the wrong variable. You added it to CONFIG but you shall add it to QT as @SimonSchroeder wrote.

                                [edit: Answer to the original post SGaist]

                                B Offline
                                B Offline
                                BAHRAMUDIN ADIL
                                wrote on last edited by
                                #16

                                @SGaist Hmmm, yes, it was my fault, but now I got the next error, what is your opinion?
                                I have already added these two DLL files in Qt bin directory:

                                libmysqld.dll
                                libmysql.dll
                                

                                And also I have tried these three as well:

                                ssleay32.dll
                                libeay32.dll
                                libmysql.lib
                                

                                Also not solved the problem.

                                1 Reply Last reply
                                0
                                • B BAHRAMUDIN ADIL

                                  @SimonSchroeder Yes, I did not add the SQL module correctly in .pro file. But now I got this error:

                                  QSqlDatabase: QMYSQL driver not loaded
                                  QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7
                                  
                                  J.HilkJ Offline
                                  J.HilkJ Offline
                                  J.Hilk
                                  Moderators
                                  wrote on last edited by
                                  #17

                                  @BAHRAMUDIN-ADIL
                                  after modifying your pro file, ALWAYS clean and run qmake

                                  you added a new module so I would go a step further and delete the build directory for a complete rebuild


                                  Be aware of the Qt Code of Conduct, when posting : https://forum.qt.io/topic/113070/qt-code-of-conduct


                                  Q: What's that?
                                  A: It's blue light.
                                  Q: What does it do?
                                  A: It turns blue.

                                  B 1 Reply Last reply
                                  3
                                  • J.HilkJ J.Hilk

                                    @BAHRAMUDIN-ADIL
                                    after modifying your pro file, ALWAYS clean and run qmake

                                    you added a new module so I would go a step further and delete the build directory for a complete rebuild

                                    B Offline
                                    B Offline
                                    BAHRAMUDIN ADIL
                                    wrote on last edited by
                                    #18

                                    @J-Hilk Yes, I did that as you said, but the problem still exists. Can you tell me what files and libs I need to add and add them in which place? Thanks!

                                    1 Reply Last reply
                                    0
                                    • B BAHRAMUDIN ADIL

                                      @SimonSchroeder Yes, I did not add the SQL module correctly in .pro file. But now I got this error:

                                      QSqlDatabase: QMYSQL driver not loaded
                                      QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7
                                      
                                      SGaistS Offline
                                      SGaistS Offline
                                      SGaist
                                      Lifetime Qt Champion
                                      wrote on last edited by
                                      #19

                                      @BAHRAMUDIN-ADIL said in Qt already updated to 5.14.1, but why it still uses MSVC 2017 build tools?:

                                      QSqlDatabase: QMYSQL driver not loaded
                                      QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7

                                      As you can see from the listing, you don't have the plugin at all.

                                      As for why: the licensing of MySQL changed so only GPL and Commercial are available now. Since the pre-built binaries are usable also under the LGPL, the plugin can't be provided.

                                      You also have the option of building it with MariaDB which fixes the licensing issue.

                                      See QTBUG-78241

                                      Interested in AI ? www.idiap.ch
                                      Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                                      B 1 Reply Last reply
                                      1
                                      • SGaistS SGaist

                                        @BAHRAMUDIN-ADIL said in Qt already updated to 5.14.1, but why it still uses MSVC 2017 build tools?:

                                        QSqlDatabase: QMYSQL driver not loaded
                                        QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7

                                        As you can see from the listing, you don't have the plugin at all.

                                        As for why: the licensing of MySQL changed so only GPL and Commercial are available now. Since the pre-built binaries are usable also under the LGPL, the plugin can't be provided.

                                        You also have the option of building it with MariaDB which fixes the licensing issue.

                                        See QTBUG-78241

                                        B Offline
                                        B Offline
                                        BAHRAMUDIN ADIL
                                        wrote on last edited by
                                        #20

                                        @SGaist You mean that I need to build Qt from source with the needed plugins? Or I just need to build the MySQL plugin? If the second case is right, then to build the only plugin, what should I need, and how to build? Is there any guide to show how to build?
                                        Thanks!

                                        aha_1980A 1 Reply Last reply
                                        0
                                        • B BAHRAMUDIN ADIL

                                          @SGaist You mean that I need to build Qt from source with the needed plugins? Or I just need to build the MySQL plugin? If the second case is right, then to build the only plugin, what should I need, and how to build? Is there any guide to show how to build?
                                          Thanks!

                                          aha_1980A Offline
                                          aha_1980A Offline
                                          aha_1980
                                          Lifetime Qt Champion
                                          wrote on last edited by
                                          #21

                                          @BAHRAMUDIN-ADIL

                                          you need to build the plugin as described here: https://doc.qt.io/qt-5/sql-driver.html#qmysql

                                          Regards

                                          Qt has to stay free or it will die.

                                          B 1 Reply Last reply
                                          1

                                          • Login

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • Users
                                          • Groups
                                          • Search
                                          • Get Qt Extensions
                                          • Unsolved