GPL
We are familiar with using GPL in Linux. The GPL protocol and BSD, Apache licence, and other licenses that encourage code reuse are very different. The starting point of GPL is the open-source/free use of code and the open-source/free use of reference/modification/derivative code, however, modification and derivative code generation cannot be released and sold as commercial software with closed source. That's why we can use a variety of free Linux, including commercial companies' Linux and Linux various free software developed by individuals, organizations, and commercial software companies.
The main content of the GPL protocol is as long as you use ("use" refers to the class library reference, modified code or derivative code) the GPL protocol in a software product, the software must also adopt the GPL protocol, which is both open-source and free. This is the so-called "contagious ". The GPL protocol product can be used as a separate product without any problems. You can also enjoy the free advantage.
Because GPL strictly requires that software products that use the GPL class library use the GPL protocol, for open source code that uses the GPL protocol, commercial software or departments that require code confidentiality are not suitable for integration/adoption as the basis for class libraries and secondary development.
Other details, such as the GPL Protocol, must be similar to BSD/Apache.
Lgpl
Lgpl is an open-source protocol designed mainly for class libraries. Unlike GPL, any software that uses/Modifies/derives the GPL class library must use the GPL protocol. Lgpl allows commercial software to use the lgpl class library through class library reference (Link) without the need for open source commercial software code. This allows open source code using the lgpl protocol to be referenced and published and sold by commercial software as class libraries.
However, if you modify or derive the lgpl protocol code, all the modified Code, the additional code involved in the modification part, and the derived code must adopt the lgpl protocol. Because the open-source code of the lgpl protocol is suitable for being referenced by commercial software as a third-party class library, but it is not suitable for the lgpl protocol code, secondary Development of commercial software is implemented through modification and derivative methods.
GPL and lgpl both protect the intellectual property rights of the original author and prevent people from using open-source code to copy and develop similar products.
========================================================== ===
Cliff experience: Use lgpl code. Generally, it is a third-party library (don't forget that the earliest name of lgpl is library GPL). At this time, developers only use its functions, without making any changes to the library, developers do not have to publish their own commercial source code. However, if you have modified the code of this library, I'm sorry, the code you modified must be all open-source, and the protocol is also lgpl. However, Commercial Code except the Library source code does not need to be published. I understand it like this, huh, huh. I used to think that lgpl is used for commercial purposes. I don't have to buy it for personal purposes. I was wrong.