About commecial use
Hi, everyone. I'm posting this thread because I still have a doubt related to an old topic I created in the past. If I use the Windows header files, the C Standard Library and the GNU GCC Compiler to create a commercial, closed-source software, do I have to pay anything to any company?
Thanks in advance!
Read the GCC license agreement to be certain ... but no I don't believe you do.
In short, no. But, if you are really worried, you should provide the license terms to an appropriately qualified lawyer, to see if the terms impose any legal obligations on you. I am not a lawyer, in any jurisdiction, so can only describe my understanding.
The windows header files are distributed freely by Microsoft as part of the win32 SDK. That is distributed with a EULA (End User License Agreement). My understanding of the intent of that license is to permit usage of SDK functions in your own programs, as well as allowing you to distribute and install the SDK for use in developing programs, but prevent you changing its implementation or behaviour. However, there is nothing stopping you using the SDK in your own programs, or distributing your programs that use it.
gcc is distributed under the GPL (GNU Public License) version 3 or later (IIRC). The GPL requires that derived works (i.e. for example, if you create a tailored version of gcc) must be distributed under the GPL. However, source code that you compile and link with gcc would not be viewed as a derived work.
I assume by the "C standard library" you mean libgcc - the implementation of the C standard library from GNU. That is distributed under the LGPL (Lesser GPL), which modifies the GPL in a manner that allows libraries to be used in proprietary programs. If you use a library distributed under the GPL in your commercial program, you would be breaching copyright.
In other words, both gcc and libgcc are free (as in beer, not as in zero cost - there is no restriction on anyone charging you a fee for providing a copy to you) for use. The act of using them in your own programs does not breach copyright. Note that the intent of GPL and LGPL is concerned with copyright, not with contractual obligations (for example, to pay someone license fees). However, in some jurisdictions, there is no legal distinction between copyright and contractual law.
If by "C standard library" you mean some library other than libgcc, then you need to read the license terms with that library (or, if it is bundled as part of a compiler or development environment, for the product it is distributed with).