1

My app has 2 projects: logic.dll and GUI.dll. Currently, its size is 1MB, but the whole app's size is 60MB+ due to the dependency dlls.

I've read about QT-LGPL license and know that to keep my app closed-source and commercial posibility without paying license fee, I have to compile it dynamically.

My question is:

1> Can I compile GUI project statically to create dynamic library GUI.dll and public code or object file of GUI.cpp under LGPL?

2> Then compile logic project with GUI.dll dynamically under LGPL and keep logic.cpp closed-source (ofcourse for commercial app)?

MarkJoy
  • 13
  • 2

1 Answers1

1

If your GUI project is released per the terms of the LGPL, including its entire source, not just the object file, then dynamically link to it with your logic application, you'd be OK.

You either need to straight up dynamically link to the LGPL library, or provide some other LGPL compliant mechanism by which the users of your software can modify the LGPL library and use the modified version in your application.

If you are going to use QT, just dynamically link to it like a normal person.

whatsisname
  • 27,463
  • 14
  • 73
  • 93
  • Thank you for your answer. [This link](http://softwareengineering.stackexchange.com/questions/312758/does-providing-object-files-satisfy-lgpl-relink-clause) and [this link](http://stackoverflow.com/questions/10130143/gpl-lgpl-and-static-linking) mentioned that I may include ony object files. Can you elaborate more on "why would my GUI project must include its entire source code"? – MarkJoy Feb 19 '17 at 08:00
  • @MarkJoy: in your question one, you somewhat unclearly maybe hypothesis licensing your GUI project via the LGPL. You cannot do that unless you include the source code to it. Including object files and the build scripts/instructions needed to transform those into an executable can be done, but you'll have to check elsewhere how to ensure that is a "compliant mechanism" as I describe in the 2nd paragraph. – whatsisname Feb 19 '17 at 15:32
  • you're right. I want to license my GUI project via the LGPL. This is how I understand your comment: To do the above mentioned task, I have to do **one** of the following: 1> Release GUI project with entire source. 2> Or Release object files and provide a "compliant mechanism"... Am I understanding your comment correctly? – MarkJoy Feb 19 '17 at 16:21