Dev C++ With Complete Mingw Compiler And Libraries

MinGW
Original author(s)Colin Peters
Developer(s)MinGW Project
Initial releaseJuly 1, 1998; 21 years ago
Stable release
GNU BinUtils—2.32-1, Installation Manager—0.6.3, WSL—5.2.1[1] / February 11, 2019; 14 months ago
Written inC, C++
Operating systemMicrosoft Windows, Unix-like (as a cross compiler)
TypeCompiler
LicensePublic domain (headers), GNU General Public License (compiler and toolchain)
Websitemingw.org
Usage

MinGW ('Minimalist GNU for Windows'), formerly mingw32, is a free and open sourcesoftware development environment to create Microsoft Windows applications. The development of the MinGW project has slowed down since the creation in 2005–2008 of an alternative project called Mingw-w64.

MinGW includes a port of the GNU Compiler Collection (GCC), GNU Binutils for Windows (assembler, linker, archive manager), a set of freely distributable Windows specific header files and static import libraries which enable the use of the Windows API, a Windows native build of the GNU Project's GNU Debugger, and miscellaneous utilities.

Gcc

MinGW provides a complete Open Source programming tool set which is suitable for the development of native MS-Windows applications, and which do not depend on any 3rd-party C-Runtime DLLs. (It does depend on a number of DLLs provided by Microsoft themselves, as components of the operating system; most notable among these is MSVCRT.DLL, the. Mingw-w64 includes a port of the GNU Compiler Collection (GCC), GNU Binutils for Windows (assembler, linker, archive manager), a set of freely distributable Windows specific header files and static import libraries which enable the use of the Windows API, a Windows native build of the GNU Project's GNU Debugger, and miscellaneous utilities. These compilers can create both 32bit and 64bit executables and generally ship with much more Microsoft related headers and libraries. When you place these compilers in Dev-Cpp MinGW64, Dev-C can automatically configure them on first launch or via Tools Compiler Options Find Compilers.

MinGW does not rely on third-partyCruntimedynamic-link library (DLL) files, and because the runtime libraries are not distributed using the GNU General Public License (GPL), it is not necessary to distribute the source code with the programs produced, unless a GPL library is used elsewhere in the program.[2]

MinGW can be run either on the native Microsoft Windows platform, cross-hosted on Linux (or other Unix), or 'cross-native' on Cygwin. Although programs produced under MinGW are 32 bits executables, they can be used both in 32 and 64 bits versions of Windows.

History[edit]

MinGW was originally called mingw32 ('Minimalist GNU for W32'), following the GNU convention whereby Windows is shortened as 'W32'.[3][4] The numbers were dropped in order to avoid the implication that it would be limited to producing 32-bit binaries. Colin Peters authored the initial release in 1998, consisting only of a Cygwin port of GCC.[5][6] Jan-Jaap van der Heijden created a Windows-native port of GCC and added binutils and make.[5][6] Mumit Khan later took over development, adding more Windows-specific features to the package, including the Windows system headers by Anders Norlander.[5][6] In 2000, the project was moved to SourceForge in order to solicit more assistance from the community and centralize its development.[5][6]

MinGW was selected as Project of the Month at SourceForge for September 2005.[6]

In 2007 a fork of the original mingw called mingw-w64 appeared in order to provide support for 64 bits and new APIs. It has since then gained widespread use and distribution.

MSYS (a contraction of 'Minimal System') was introduced as a Bourne shell command line interpreter system[7] with the aim of better interoperability with native Windows software. In the last quarter of 2013 a new project was started, MSYS2 together with 32-bit and 64-bit MinGW packages.[8] This project was created to keep track with newer advances of the Cygwin project and the fact that the original MSYS was not able to keep up with Cygwin. MSYS2 is an independent rewrite of MSYS, based on modern Cygwin (POSIX compatibility layer) and MinGW-w64 with the aim of better interoperability with native Windows software. It uses Arch Linux's Pacman as the package manager.

In 2018, following a disagreement with SourceForge about the administration of its mailing lists, MinGW migrated to OSDN.[9]

Programming language support[edit]

Most languages supported by GCC are supported on the MinGW port as well. These include C, C++, Objective-C, Objective-C++, Fortran, and Ada. The GCC runtime libraries are used (libstdc++ for C++, libgfortran for Fortran, etc.).

MinGW links by default to the Windows OS component library MSVCRT, which is the C library that Visual C version 6.0 linked to (the initial target was CRTDLL), which was released in 1998 and therefore does not include support for C99 features, or even all of C89. While targeting MSVCRT yields programs that require no additional runtime redistributables to be installed, the lack of support for C99 has caused porting problems, particularly where printf-style conversion specifiers are concerned. These issues have been partially mitigated by the implementation of a C99 compatibility library, libmingwex, but the extensive work required is far from complete and may never be fully realized.[10]MinGW-w64 has resolved these issues, and provides fully POSIX compliant printf functionality.

Link compatibility[edit]

Dev C With Complete Mingw Compiler And Libraries Online

Binaries (executables or DLLs) generated with different C++ compilers (like MinGW and Visual Studio) are in general not link compatible. However, compiled C code is link compatible.[11]

Components[edit]

The MinGW project maintains and distributes a number of different core components and supplementary packages, including various ports of the GNU toolchain, such as GCC and binutils, translated into equivalent packages.[12][13] These utilities can be used from the Windows command line or integrated into an IDE. Packages may be installed using the command line via mingw-get.[14]

MinGW supports dynamic libraries named according to the <name>.lib and <name>.dll conventions, as well as static libraries following the lib<name>.a naming convention common on Unix and Unix-like systems.

In addition, a component of MinGW known as MSYS (minimal system) provides Windows ports of a lightweight Unix-like shell environment including rxvt and a selection of POSIX tools sufficient to enable autoconf scripts to run,[15] but it does not provide a C compiler or a case-sensitive file system.[16]

mingwPORTs are user contributed additions to the MinGW software collection. Rather than providing these 'add-ons' as precompiled binary packages, they are supplied in the form of interactive Bourne shell scripts, which guide the end user through the process of automatically downloading and patching original source code, then building and installing it. Users who wish to build any application from a mingwPORT must first install both MinGW and MSYS.[17]

The implementation of Windows system headers and static import libraries are released under a permissive license,[18] while the GNU ports are provided under the GNU General Public License. Binary downloads of both the complete MSYS package and individual MinGW GNU utilities are available from the MinGW site.

Comparison with Cygwin[edit]

Although both Cygwin and MinGW can be used to port Unix software to Windows, they have different approaches:[19] Cygwin aims to provide a complete POSIX layer comprising a full implementation of all major Unix system calls and libraries. Compatibility is considered higher priority than performance. On the other hand, MinGW's priorities are simplicity and performance. As such, it does not provide certain POSIX APIs which cannot easily be implemented using the Windows API, such as fork(), mmap() and ioctl().[19] Applications written using a cross-platform library that has itself been ported to MinGW, such as SDL, wxWidgets, Qt, or GTK, will usually compile as easily in MinGW as they would in Cygwin.

Mingw Compiler For Windows

Windows programs written with Cygwin run on top of a copylefted compatibility DLL that must be distributed with the program, along with the program's source code. MinGW does not require a compatibility layer, since MinGW-based programs are compiled with direct calls to Windows APIs.

The combination of MinGW and MSYS provides a small, self-contained environment that can be loaded onto removable media without leaving entries in the registry or files on the computer.

Dev C With Complete Mingw Compiler And Libraries List

It is also possible to cross-compile Windows applications with MinGW-GCC under POSIX systems. This means that developers do not need a Windows installation with MSYS to compile software that will run on Windows with or without Cygwin.

References[edit]

  1. ^'Download Package list'. osdn.net.
  2. ^'(MinGW on) MinGW'. MinGW.org/wiki. 2008-07-07. Retrieved 2013-10-16.
  3. ^'GNU Coding Standards'. gnu.org. Free Software Foundation. April 27, 2013. 5.5 Portability between System Types. Retrieved July 1, 2013.
  4. ^Stallman, Richard (2000-09-18). 'Libtool Re: Naming a project gnu-win32?'. libtool (Mailing list). Retrieved 2013-05-21.
  5. ^ abcd'(MinGW's) History'. MinGW.org. Retrieved 2012-07-09.
  6. ^ abcde'(sourceforge's) Project of the Month'. SourceForge.net. 2005-08-31. Retrieved 2012-07-09.
  7. ^'(wiki:) MSYS'. MinGW.org. Retrieved 2020-04-16. MSYS, a contraction of 'Minimal SYStem', is a Bourne Shell command line interpreter system.
  8. ^'How are msys, msys2, and msysgit related to each other?'. stackoverflow.com. Retrieved 2015-04-01.
  9. ^'Announcement of migration to OSDN.net'. sourceforge.net.
  10. ^'(MinGW And) C99'. MinGW.org/wiki. 2010-06-21.
  11. ^http://mingw.org/wiki/Interoperability_of_Libraries_Created_by_Different_Compiler_Brands
  12. ^'(MinGW) FAQ'. MinGW.org. Retrieved 2012-07-09.
  13. ^'MinGW - Minimalist GNU for Windows'. Sourceforge.net. Retrieved 2012-07-09.
  14. ^'MinGW Command Line Interface Installer'. Retrieved 14 June 2012.
  15. ^'(wiki:) MSYS'. MinGW.org. Retrieved 2016-02-18.
  16. ^'(wiki:) MSYS'. MinGW.org. Retrieved 2016-02-18. A common misunderstanding is MSYS is 'UNIX on Windows', MSYS by itself does not contain a compiler or a C library, [...] nor does it provide any UNIX specific functionality like case-sensitive filenames.
  17. ^'(wiki:) mingwPORT'. MinGW.org. Retrieved 2012-07-09.
  18. ^'(MinGW) Licensing Terms'. MinGW.org. Retrieved 2012-07-09.
  19. ^ ab'(MinGW:) About Cygwin'. MinGW.org. Retrieved 2012-07-09.

How To Use Dev C++ Compiler

External links[edit]

  • nuwen 64-bit MinGW distro - maintained by a microsoft employee
Retrieved from 'https://en.wikipedia.org/w/index.php?title=MinGW&oldid=951257793'

hello altogether,
my name is Wolfram Pagels, Berlin, Germany
my status is :retired but enthusiastic c++-fan;

I use Dev-C++ since 3 month ago; in the 70th I programmed in Fortran;
after a long break I enjoy to learn c++11;

e.g.: the day before yesterday I got the following message from Dev-C++:

My second question to you: * h o w to enable (these) options at my installed and running actual mingw compiler as part of Dev-C++ IDE ?

Thank you in advance for your time,

yours sincerely

Dev C With Complete Mingw Compiler And Libraries System

Edited by mike_2000_17: Removed email address. Fixed formatting.
  • 4 Contributors
  • forum 3 Replies
  • 3,759 Views
  • 23 Hours Discussion Span
  • commentLatest Postby Ancient DragonLatest Post

mike_2000_172,669

Well, the answer to your problem (but not to your question) is to change your IDE. Dev-C++ is far too old to support C++11. The MinGW GCC version that ships with Dev-C++ is version 3.4.2, which is really old. Decent support for C++11 starts roughly from 4.6.0, but since it is still experimental, the newer the better. Currently, you can get 4.7.1 version through '>TDM-GCC ports. I recommend switching to '>CodeBlocks, which you can download as an installer that includes TDM-GCC 4.7.1. That should allow you to have decent C++11 support.

Dev C++ With Complete Mingw Compiler And Libraries Free

As for setting compiler options, you typically have to navigate the 'Build Configuration' or 'Project Properties' or similar panels. Usually, you will find a place to put 'custom compiler options' where you can place the exact command-line compiler option (like -std=c++11), that is, if you can't find a checkbox for the particular option you need.