tags:

views:

227

answers:

2

We have a commercial windows application making use of QT.

I'll be very simplistic in my description as I must have a clear answer.

At compile time we use QT *.LIB files

We have a result of our compilation is an *.EXE file, we wrap into an installer and ship to clients. This *.EXE files depends on *.DLL files in QT.

at runtime the *.DLL files of QT are used

My questions are:

1) is can I legally bundle the QT *.dll files in my installer? 2) can I legally bundle my final *.EXE files even if it's compilation/linkage depends on QT *.LIB files

Thank you

+3  A: 

Both are allowed. You should pay particular attention to section 6 of LGPL 2.1. You have to allow private modification and reverse engineering for your closed source app. You probably want option 6b, which in your case just means users can install modified QT DLLs. IANAL.

Matthew Flaschen
this is what I don't get-- how can I allow switching of QT DLLs? if it's a bug fix, it's fine, but what if they change the structure and the content of the *.lib files that are "fused" into my compiled application will need to change? this sounds technically impossible.
C172Programmer
Your program only needs to work with modified QT DLL if it "is interface-compatible with the version that the work was made with."
Matthew Flaschen
that makes sense. thanks.
C172Programmer
A: 

1) is can I legally bundle the QT *.dll files in my installer?

This is the recommended solution - it allows the user to upgrade to later versions of Qt easily.

2) can I legally bundle my final *.EXE files even if it's compilation/linkage depends on QT *.LIB files

Do you mean you use the Qt stub .libs to build a dll version or are you statically linking an exe ( no Qt DLLs required)? It must be possible to relink Qt. If you are statically linking Qt this probably means you have to make object or raw library versions of your app available (depends on your OS)

Martin Beckett
I mean stubs of course, the final EXE will depend on finding the QT dlls at runtime.
C172Programmer