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:
-
I have a website with a (paid) subscription-based service
-
I would like the users to also access some of those services through a cute desktop application (hopefully built on QT)
-
The desktop application is free to download but the service/subscription is paid for
Which license would be valid for my purposes?
-
-
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/).
-
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.