MinGW: Difference between revisions

166 bytes removed ,  13 years ago
no edit summary
[unchecked revision][unchecked revision]
m (Killing "PlusPlus" for "Dev-C++" too (last one ...))
No edit summary
Line 1:
'''MinGW''' (Minimalist GNU for Windows) is a port of several GNU utilities to the Windows console environment, including the GCC / binutils toolchain. It is less sophisticated than Cygwin, but more compact and haswith a lower overhead. It is most widely used in conjunction with the [[Dev-C++]] and CodeBlocks [[:Category:IDEs|IDE]].
 
Note that
* MinGW is a 10+ megabyte download and, like Cygwin, now requires a helper DLL (<tt>MSYS-1.0.DLL</tt>). So it's no longer "minimal".
* MinGW '<tt>make</tt>' uses '<tt>sh</tt>' as the shell if it finds '<tt>sh</tt>' on the path. This is the Wrong Thing. DJGPP '<tt>make</tt>' works better: it looks at the <tt>SHELL</tt> and <tt>COMSPEC</tt> environment variables.
 
==OSDev==
 
Really,You you'reare advised notencouraged to use [[Cygwin]] instead of MinGW for OSDeving, but instead to use [[Cygwin]]. MinGW has a collection of issues that make it poorly suited for our needs:
 
# (GCC 2.95) <tt>ld -r -d ...</tt> doesn't get rid of all the common variables.
Line 13 ⟶ 9:
# <tt>ld -Ttext=NNN ...</tt> doesn't put the .text section at the correct address unless you also use the --image-base=0 option.
# Linker claims to support ELF, but says "PE operations on non PE file" if you try to use ELF.
*# MinGW '<tt>make</tt>' uses '<tt>sh</tt>' as the shell if it finds '<tt>sh</tt>' on the path. This is the Wrong Thing., DJGPPas the '<tt>makeSHELL</tt>' works better: it looks at theand <tt>SHELLCOMSPEC</tt> andenvironment variables should be evaluated (like e.g. DJGPP '<tt>COMSPECmake</tt>' environment variablesdoes).
 
ButIt if you write a link script, you'll'is'' still be able to make it ablepossible to becreate a Multiboot-kludge compatible kernel, though. If you are interested you can visit FreeDOS-32 and; its kernel can be compiled by MinGW.
 
<pre>
448

edits