Hi, everyone. What IDE and compiler + C implementation (which of course includes the header files) can I use to developt commercial, closed-source software? Thanks in advance.
Hi, everyone. What IDE and compiler + C implementation (which of course includes the header files) can I use to developt commercial, closed-source software? Thanks in advance.
What IDE and C compiler do you use? Chances are, there is no restriction preventing you from using it to develop "commercial, closed-source software".
Look up a C++ Reference and learn How To Ask Questions The Smart WayOriginally Posted by Bjarne Stroustrup (2000-10-14)
You mean I can use any IDE and any compiler + C implementation?
Since it'll be commercial and closed-source, anyone! Who will find out anyway?
Devoted my life to programming...
Assuming that they are not licensed for non-commercial use or have some special restriction against using them to develop software with certain license conditions, yes.
Look up a C++ Reference and learn How To Ask Questions The Smart WayOriginally Posted by Bjarne Stroustrup (2000-10-14)
So I could use a C implementation + compiler which are under the GPL?
I am not a lawyer; this is not legal advice.
Under the usual interpretations of the various versions of the GPL, I'd say that no, you would not be able to do that without having your programs licensed under the GPL since it is likely that the compiler may incorporate code under the GPL into the compiled program. However, it is also likely that there is an exception added to the license that caters to this (e.g., GCC).
Really, it would be so much simpler if you just gave a concrete mention of what IDE, compiler and standard library implementation you have in mind, otherwise we'll have to keep talking about "in general, but" and making various assumptions that may be wholly unnecessary.
Look up a C++ Reference and learn How To Ask Questions The Smart WayOriginally Posted by Bjarne Stroustrup (2000-10-14)
If the header files are explicitly GPL licensed, you definitely can't use it in a program with a non-copyleft license.
Yes, gcc (the gnu compiler collection) can be used to develop commercial software. In fact it is widely used for that purpose. Very few compiler vendors (or distributors of compilers under "free" licenses) have a model that forces a particular licensing model onto programs built using their compilers.
gcc (the compile family) is distributed under gnu's GPL (General Public License) . The main practical constraints, IIRC, are that it is not permitted use gcc's source code in your own project and, if you distribute gcc itself with your product, you are required to both disclose that and provide access to gcc's source code.
However, if you are really concerned about complying with license terms, it is best to seek qualified legal advice rather than to ask for advice on an internet forum. I am not a lawyer in any jurisdiction.
It is not header files that will be licensed. It will be the library itself although, since header files define the interface to the library, the license terms will typically be stated in the header files.
Libraries distributed with gcc (notably, here, the implementation of the C standard library) are distributed under the LGPL (Lesser General Public License), not the GPL. Essentially that difference allows development of a program that links to (or uses) the library, regardless of what license that program is distributed under. In other words, linking or using a library under the LGPL does not place your program (or libraries) under either the GPL or LGPL.
Again, you are best off examining the license terms for each library, and seeking qualified legal advice.
Basically, read the EULA of what you intend to use.
MinGW can be used to produce commercial closed-source software if you want. Except if you compile with profiling on (when the GPL applies to the end binary!).
GCC can be used to produce commercial closed-source software if you want. But check what libraries you link to.
SDL 2.0 can be used to produce commercial closed-source software if you want. But only if you put it into a separate DLL and load it from them.
SDL 3.0 can be used to produce commercial closed-source software if you want. They changed the licence to allow it.
Get a compiler / linker / library / IDE that you want to use and CHECK THEIR LICENSE or, worst case, ask here about a specific combination. The same applies if you talk about MSVC or Borland or anything else. You need to check the compiler / linker / libraries / IDE that you use and, most importantly, the agreements that you have legally agreed to by using those software. You know, those legally-binding documents that pop up and make you click "I Agree"!
In general, there's usually no difference between commercial development and non-commercial with the majority of things. But without checking each one, you'll never know. There are compilers that might enforce non-commercial use only. There are certainly libraries that do. There are certainly libraries that enforce GPL restrictions on your program if you're not careful which doesn't stop commercial use but does stop closed-source use. The Visual C++ runtimes have an EULA all of their own, for instance. There are things like this: EULA of Visual Studio 2010 from dreamspark « Limegarden.net which visual studio files restrict your use to non-commercial programs if you obtained Visual Studio via a certain program aimed at schools, etc.
I use MinGW, without profiling, which uses GCC and I compile with SDL libraries a lot and use several SDL-based libraries (which incorporate everything from MP3 libraries to font libraries), hashing libraries, SQLite, OpenSSL, etc. in my programs. I have to check everything I use for the use I intend to use it for, commercial or not, open- or closed-source. What, especially, makes you think you don't have to do the same?
- Compiler warnings are like "Bridge Out Ahead" warnings. DON'T just ignore them.
- A compiler error is something SO stupid that the compiler genuinely can't carry on with its job. A compiler warning is the compiler saying "Well, that's bloody stupid but if you WANT to ignore me..." and carrying on.
- The best debugging tool in the world is a bunch of printf()'s for everything important around the bits you think might be wrong.