Which version(license) shall I use for my scenario

  • Hi,

    Thanks for the great piece of software.

    I have heard alot about QT and would like to try it out on a project. I am not sure which version or license would apply. This is my scenario:

    1. I have a website with a (paid) subscription-based service

    2. I would like the users to also access some of those services through a cute desktop application (hopefully built on QT)

    3. The desktop application is free to download but the service/subscription is paid for

    Which license would be valid for my purposes?

  • Moderators

    All should work for you. Biggest difference is (from my understanding, but I am not a lawyer) is that with the commercial one you can do static linking without effecting the licensing of your code and change Qt without contributing those changes back.

    So if you do not want to do static linking or modify Qt itself you should be fine with all Qt licensing options.

    Of course ther is a support package included with the commercial license, too (as far as I know, "check the shop for details":http://shop.qt.nokia.com/).

  • Thank-you for assisting, Tobias.

    If I read correctly, the benefit of static linking is that my program will be smaller in size?...and I can only do so if I get the commercial license?

  • Moderators

    Static linking means that all the required code is copied from the library into your binary. Using dynamic linking in contrast the binary will only contain a reference "I need library X". The OS will then load the library together with your binary and you can jump into the code of the library.

    So it is hard to say whether the binary will be smaller... in effect a statically linked binary will usually be larger than a dynamically linked one (as the library code is copied into the executable). How much the linking effects runtime memory usage is difficult to say though: Statically linked binaries only copy the code they need, so anything not needed is not loaded into memory. A dynamically linked application of course has to load the complete library, incl. those parts it might not actually need. On the other hand big parts of a dynamically linked library can get reused for several processes: If you run 10 applications using QtCore it is loaded only once (if all refer to the same version that is). That is not possible for statically linked applications.

    The real benefit of a statically linked application is that you do not need to ship libraries with it. This makes it easier to deploy.

Log in to reply

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.