Mingw minimalist gnu for windows

Leader badge

This project is in the process of moving to osdn.net/projects/mingw, you can continue to follow us there.

MinGW: A native Windows port of the GNU Compiler Collection (GCC), with freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All of MinGW’s software will execute on the 64bit Windows platforms.

License

BSD License, Public Domain, GNU General Public License version 2.0 (GPLv2), MIT License, GNU General Public License version 3.0 (GPLv3)

Leading Solution for Requirements, Risk, and Test Management Icon

Empower Your Team, Enable Your Process. Equip your teams with the freedom to innovate and the tools they need to do their best work. Capture and work with real-time decisions and feedback, keep key stakeholders informed when change occurs and make sure everyone gets the content they need—right when they need it. With Jama Connect as your single source of truth for definition, verification and validation, you can benchmark and monitor team performance over time to understand the benefits of retooling your product development process. You can strengthen collaboration around critical information and tradeoffs. And you can efficiently reuse IP across products. Jama Connect provides visibility across product definition, design, build and test phases, and exposes relationships and dependencies between systems, teams, activities and results.

User Ratings


4.3

out of 5 stars

★★★★★

★★★★

★★★

★★

ease
1 of 5
2 of 5
3 of 5
4 of 5
5 of 5

3 / 5

features
1 of 5
2 of 5
3 of 5
4 of 5
5 of 5

4 / 5

design
1 of 5
2 of 5
3 of 5
4 of 5
5 of 5

3 / 5

support
1 of 5
2 of 5
3 of 5
4 of 5
5 of 5

3 / 5

User Reviews

  • All
  • ★★★★★
  • ★★★★
  • ★★★
  • ★★
  • «MinGW: Windows programming made efficient. A minimalist GNU tool offering seamless coding experience. Essential for developers seeking simplicity.»
    ai clothes remover, clothes remover website

  • Thanks, it works perfect.

Read more reviews >

Additional Project Details

Operating Systems

MinGW/MSYS2, Windows

Languages

English

Intended Audience

Information Technology, Education, Developers

User Interface

Win32 (MS Windows)

Programming Language

Fortran, Pascal, C++, Ada, C, Java

Related Categories

Fortran Build Tools ,
Fortran Code Generators ,
Fortran Debuggers ,
Fortran Compilers ,
Fortran Interpreters ,
Pascal Build Tools ,
Pascal Code Generators ,
Pascal Debuggers ,
Pascal Compilers ,
Pascal Interpreters ,
C++ Build Tools ,
C++ Code Generators ,
C++ Debuggers ,
C++ Compilers ,
C++ Interpreters ,
Ada Build Tools ,
Ada Code Generators ,
Ada Debuggers ,
Ada Compilers ,
Ada Interpreters ,
C Build Tools ,
C Code Generators ,
C Debuggers ,
C Compilers ,
C Interpreters

2000-02-09

From Wikipedia, the free encyclopedia

MinGW

Original author(s) Colin Peters
Developer(s) MinGW Project
Initial release July 1, 1998; 25 years ago
Stable release

GNU BinUtils—2.32-1, Installation Manager—0.6.3, WSL—5.4.2[1]
/ April 12, 2021; 2 years ago

Written in C, C++
Operating system Microsoft Windows, Unix-like (as a cross compiler)
Type Compiler
License Public domain (headers), GNU General Public License (compiler and toolchain)
Website osdn.net/projects/mingw

MinGW («Minimalist GNU for Windows»), formerly mingw32, is a free and open source software development environment to create Microsoft Windows applications.

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.

MinGW does not rely on third-party C runtime dynamic-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-bit executables, they can be used both in 32 and 64-bit versions of Windows.

The development of the MinGW project has been forked with the creation in 2005–2008 of an alternative project called Mingw-w64.

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]

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 2018, following a disagreement with SourceForge about the administration of its mailing lists, MinGW migrated to OSDN.[8]

Fork[edit]

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. MSYS2 («minimal system 2») is a software distribution and a development platform for Microsoft Windows, based on Mingw-w64 and Cygwin, that helps to deploy code from the Unix world on Windows.[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.).[citation needed]

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]

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 a 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.

Windows programs written with Cygwin run on top of a copylefted compatibility DLL that must be distributed with the program, unless staticly linked. If dynamically linked, the program must also provide information on where to obtain Cygwin source. 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.

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.

See also[edit]

  • Cygwin
  • Windows Subsystem for Linux
  • Mingw-w64

References[edit]

  1. ^ «Download Package list». osdn.net. Retrieved 2023-02-04.
  2. ^ «(MinGW on) MinGW». MinGW.org/wiki. 2008-07-07. Archived from the original on 2013-10-06. 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. ^ a b c d «History | MinGW». MinGW.org. Archived from the original on 2012-08-23. Retrieved 2012-07-09.
  6. ^ a b c d e «(sourceforge’s) Project of the Month». SourceForge.net. 2005-08-31. Retrieved 2012-07-09.
  7. ^ «(wiki:) MSYS». MinGW.org. Archived from the original on 2006-08-28. Retrieved 2020-04-16. MSYS, a contraction of «Minimal SYStem», is a Bourne Shell command line interpreter system.
  8. ^ «Announcement of migration to OSDN.net». Mingw-users (Mailing list). January 21, 2018.
  9. ^ MSYS2: official homepage, code repository
  10. ^ «(MinGW And) C99». MinGW.org/wiki. 2010-06-21. Archived from the original on 2011-05-20. Retrieved 2011-03-29.
  11. ^ «Interoperability of Libraries Created by Different Compiler Brands | MinGW». mingw.org. Archived from the original on 2010-06-12.
  12. ^ «(MinGW) FAQ». MinGW.org. Archived from the original on 2008-11-21. Retrieved 2012-07-09.
  13. ^ «MinGW — Minimalist GNU for Windows». Sourceforge.net. Retrieved 2012-07-09.
  14. ^ «MinGW Command Line Interface Installer». Archived from the original on 15 June 2012. Retrieved 14 June 2012.
  15. ^ «(wiki:) MSYS». MinGW.org. Archived from the original on 2016-02-18. Retrieved 2016-02-18.
  16. ^ «(wiki:) MSYS». MinGW.org. Archived from the original on 2016-02-18. 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. Archived from the original on 2012-07-23. Retrieved 2012-07-09.
  18. ^ «(MinGW) Licensing Terms». MinGW.org. Archived from the original on 2009-08-04. Retrieved 2012-07-09.
  19. ^ a b «(MinGW:) About Cygwin». MinGW.org. Archived from the original on 2009-08-28. Retrieved 2012-07-09.

External links[edit]

  • Official MinGW website
  • Official software repository in OSDN
  • nuwen 64-bit MinGW distro — maintained by a Microsoft employee
  • MXE — Makefiles to build MinGW on Unix and many common dependencies libraries, pre-built packages available

The heart of the Mingw-w64 project is headers and support libraries to
run the output of GCC on Windows. Since Mingw-w64 is neither the home of
GCC nor of binutils, several sets of installation packages which combine
them are available.

In addition, the sources are available but most people will want to grab
binaries directly.

Version Host GCC / Mingw-w64 Version Languages Additional Software in Package Manager
Arch Linux logo
Arch
Linux
Arch Linux 12.2.0/10.0.0 Ada, C, C++, Fortran, Obj-C, Obj-C++ many
Cygwin logo
Cygwin
Rolling Windows 11.3.0/10.0.0 C, C++, Fortran, Obj-C many
Debian logo

Debian
Debian 9 (Stretch) 6.3.0/5.0.1 Ada, C, C++, Fortran, Obj-C, Obj-C++, OCaml 9 (gdb, libassuan, libgcrypt, libgpg-error, libksba, libnpth, nsis, win-iconv, zlib)
Debian 10 (Buster) 8.3.0/6.0.0 Ada, C, C++, Fortran, Obj-C, Obj-C++
Debian 11 (Bullseye) 10.2.1/8.0.0
Debian 12 (Bookworm) 12.0.0/10.0.0
Fedora Linux logo
Fedora
Fedora 36 11.2.1/9.0.0 Ada, C, C++, Fortran, Obj-C, Obj-C++ many
Fedora 37 12.2.1/10.0.0
LLVM-MinGW 20220906 Windows, Linux LLVM 15.0.0/trunk C, C++ make, Python
w64devkit 1.20.0 Windows 13.2.0/11.0.0 C, C++, Fortran 8
(busybox,
cppcheck,
ctags,
gdb,
make,
nasm,
pkg-config,
vim)
MacPorts logo
MacPorts
Rolling macOS 12.2.0/10.0.0 C, C++, Fortran, Obj-C, Obj-C++ 1 (nsis)
MingW-W64-builds Rolling Windows 13.1.0/11.0.0 C, C++, Fortran 4 (gdb, libiconf, python, zlib)
MSYS2 logo
MSYS2
Rolling Windows 13.2.0/trunk Ada, C, C++, Fortran, Obj-C, Obj-C++, OCaml many
WinLibs.com Rolling Windows 12.2.0 Ada, C, C++, Fortran, Obj-C, Obj-C++, Assembler Package manager: work in progress (will offer > 2500 packages)
Ubuntu logo
Ubuntu
18.04 Bionic Beaver 7.3.0/5.0.3 Ada, C, C++, Fortran, Obj-C, Obj-C++ 9 (gdb, libassuan, libgcrypt, libgpg-error, libksba, libnpth, nsis, win-iconv, zlib)
20.04 Focal Fossa 9.3.0/7.0.0
22.04 Jammy Jellyfish 10.3.0/8.0.0
22.10 Kinetic Kudu 10.3.0/10.0.0
23.04 Lunar Lobster 12.2.0/10.0.0

Arch Linux

Installation:

  • Community repository (toolchain)
  • AUR repository (additional packages)

Ubuntu

Installation: through integrated package manager.

Mingw-w64 packages on Ubuntu

Cygwin

Cygwin is a Unix-like environment and command-line
interface for Microsoft Windows. Its core is the cygwin1.dll library which
provides POSIX functionality on top of the Win32 API. It can be used as a build
environment which targets Windows directly and for which output doesn’t depend
on cygwin1.dll.

Installation is done through cygwin’s package manager:
setup.exe.

As part of the numerous packages in cygwin, there are cross-compilation
toolchains which target both 32 bits and 64 bits; their names start with
“mingw64-”.

Once they are installed, they should be used according to the general
cross-compilation approach.

Debian

Installation: through integrated package manager.

Mingw-w64 packages on Debian

Fedora

Installation: through integrated package manager.

LLVM-MinGW

LLVM-MinGW is a toolchain built with Clang, LLD, libc++, targeting
i686, x86_64, arm and aarch64 (ARM64), with releases both for running
as a cross compiler from Linux and for running on Windows. It supports
Address Sanitizer, Undefined Behaviour Sanitizer, and generating debug
info in PDB format.

Installation: GitHub

w64devkit

w64devkit is a portable C and C++ development kit for x64 (and x86) Windows.

Included tools:

  • Mingw-w64 GCC : compilers, linker, assembler
  • GDB : debugger
  • GNU Make : standard build tool
  • busybox-w32 : standard unix utilities, including sh
  • Vim : powerful text editor
  • Universal Ctags : source navigation
  • NASM : x86 assembler
  • Cppcheck : static code analysis

The toolchain includes pthreads, C++11 threads, and OpenMP. All included
runtime components are static.

Installation: GitHub

MacPorts

To install just the 32-bit or just 64-bit compiler with dependencies, use:

sudo port install i686-w64-mingw32-gcc
sudo port install x86_64-w64-mingw32-gcc

A shortcut to install both:

sudo port install mingw-w64

Here is the list of Mingw-w64 packages on MacPorts.

Mingw-builds

Installation: GitHub

WinLibs.com

Standalone MinGW-w64+GCC builds for Windows, built from scratch (including all dependencies) natively on Windows for Windows.

Downloads are archive files (.zip or .7z). No installation is required,
just extract the archive and start using the programs in mingw32\bin or mingw64\bin.
This allows for a relocatable compiler suite and allows having multiple versions on the same system.

Also contains other tools including:
* GDB — the GNU Project debugger
* GNU Binutils — a collection of binary tools
* GNU Make — a tool which controls the generation of executables and other non-source files
* Yasm — The Yasm Modular Assembler Project
* NASM — The Netwide Assembler
* JWasm — A free MASM-compatible assembler

Flavors:
* separate packages for 32-bit (i686) and 64-bit (x86_64) Windows
* separate packages for MSVCRT and UCRT builds
* only POSIX threads builds (which also include Win32 API thread functions)
* exception model: Dwarf for 32-bit (i686) and SEH for 64-bit (x86_64)

Installation: Download from winlibs.com and extract archive (no installation needed).

MSYS2

Installation: GitHub

Sources

Tarballs for the mingw-w64 sources are hosted on
SourceForge.

The latest version from the 11.x series is 11.0.0.

The latest version from the 10.x series is 10.0.0.

The latest version from the 9.x series is 9.0.0.

The latest version from the 8.x series is 8.0.2.

The latest version from the 7.x series is 7.0.0.

The latest version from the 6.x series is 6.0.0.

The latest version from the 5.x series is 5.0.4.

The old wiki has instructions for building
native
and
cross
toolchains.

Details on how to get the mingw-w64 code from Git and an Git-web viewer are
available on
SourceForge.

Unsorted complementary list

Darwin/Mac OS X

The existing Darwin binaries have been built through buildbot in 2013 and links
to them can be found on the dedicated
page.

OpenSUSE

The OpenSUSE Linux
distribution also has a
large and well-maintained set of packages for cross-compilation.

Rubenvb

Rubenvb has built a number of toolchains including some for less common setups.
They are split into two categories: toolchains targeting
Win32
or
Win64.

GCC with the MCF thread model

GCC with the MCF thread model is a series of
x86 and x64 native toolchains built by LH_Mouse. The MCF thread model has been
merged into GCC 13, and can be enabled by passing --enable-threads=mcf to
GCC’s configure script. C++11 threading facilities, such as std::thread,
std::mutex, std::condition_variable, std::call_once, thread_local etc.
invoke the mcfgthread library, which
implements them on Windows syscalls in a more standard-compliant and more
efficient way, outperforming even native slim reader/write locks (SRW) since
Windows Vista.

Store of binaries on SourceForge

A very large number of other binaries and sources are hosted in the File
Release System on SourceForge which
might have what you are after.

MinGW (Mingw-64) Download for Windows 11 64-bit - #1 GCC Compiler for PC

MinGW in recent times was known as MinGW32 and a newer version as MinGW-w64. It is an open-source development software that you can use to create Microsoft Windows Apps. The developers of the project have written it in C and C++. The main reason to use MinGW Download is to develop and support GCC which is a collection of programming languages compiler of Windows 11/10.

Some call it out as GNU Compiler Collection. Its native windows port carries extensions to Microsoft Visual C++ (Microsoft Visual C++) runtime which shall provide support to C99 function. For those who do not know this is an older version of C language standard. You can execute all software which are created through MinGW on 64-bit windows platform.

What is MinGW

Use this to compile system which are based on GNU, GCC and Binutils project and both compiles and links the codes which need to run on all the Win32 systems. Moreover, it shall also provide you with compilers for Fortan, C and C++. The best thing is it is not dependent upon third-party C runtime DLL files but inside the program, it comes with Jargon which can be a bit overwhelming.

MinGW-w64 Free Download for Windows 11

MinGW stands for Minimalist GNU for Windows. It does not give you any POSIX runtime environment for the POSIX app deployment. If you wan this then you need to use Cygwin instead. It shall also provide you with each and every open-source programming tool set which is required in developing windows applications. After reading all this, yes, you are thinking right this is perfect for easy yet intuitive installation of GNU compiler collections. You can also use C or C++ IDEs if you intend to make applications in general but for native support, MinGW is unbeatable.

MinGW Newest Features

There are features released now and again by the project team and some notable ones include:

  1. API document in API format.
  2. GNU compiler collection port which is GCC including C, C++, ADA and Fortran compilers.
  3. A utility, gdbmigrator() which shall provide you with automated migration of code written against Microsoft.
  4. GNU Binutils for Windows 11 like linker, archive manager, assembler and much more.
  5. Command line installation, mingw-get in order to obtain and manage its installation packages.

Advantages and Disadvantages of using MinGW

This is not a great option if you are new to programming and willing to learn. Go for PowerShell which comes for free. As MinGW is easy to use the downloads are all over all the place and there are many other types of downloads on top of one another. The auto-installer also does not work properly. Moreover, it also comes with errors while you update them from your sync repositories.

Download MinGW GCC Compiler Latest Version

For more ease, you can check the web for some tutorials on how to install and use the program. Keep in mind that many of these are conflicting. Even on official sites, you shall see that many of the links are broken so it gets all confusing. All this is because the project has not been well-maintained by the developers so it’s outdated but still it is great to build native windows applications.

It is outdated. If you are intended to use scripts natively and in a unique way on windows then this is a useful program. With this, you can easily search windows files in UNIX manner through its find command. At the same time, you can also find out many issues when it comes to the process of installation. At times you need to do it manually.

ALSO SEE: 6 Best Free Python Compilers for Beginners.

How To Install MinGW on Windows 11 (A step-by-step process)

Once the installer has been downloaded you need to follow the steps mentioned below:

  1. You need to head to the folder which carries MinGW-64 installer (mingw-w64-Windows-11-10-exe).
  2. Once done, run the installer and hit “next” on the steps presented.
  3. You need to select the following for the compiler to work correctly.Mingw64 Download for Windows PC
  4. After this change, the destination folder to C:\mingw make sure to not put any space in the name of the folder ever.
  5. The installer at this point shall download the necessary files. Once done, they shall be in the location where you have specified above.
  6. Now the installer shall extract files from the downloaded file and place them into the installation directory.
  7. A dialog shall pop up once all the files have been installed, hit “next”.
  8. If the process of installation was a hit then you shall see a final dialog box, hit “finish” to complete.
  9. Now the last one is a hard step for many students mainly because they did not properly configure their system after the software got installed.

If you want to use gcc or g++ compilers for any command prompt then you need to add location of “bin” folder to the path, assuming you have installed MinGW in C:\mingw as mentioned above you need to add the following:

Paul@ninja-ide:~# \Paul\mingw\mingw64\bin

In the start, if you are not aware on how to modify the path then you take help.

When adding \Paul\mingw\mingw64\bin to the path this needs to be the first entry in the path, otherwise, it shall cause the wrong compilers to be used. Once this is done you need to logout and login to windows.

As you log-in again you need to open a command prompt, at this time you shall be able to type “gcc” from any command window and get the latest version of the compilers.

How To Install MinGW Tools for C/C++ in Windows 11

If you are planning to code in C or C++ in MinGW then having MinGW Tools installed is a must.

  1. You need to check “MSYS Basic System” at select component dialog.
  2. Add Paul\MinGW\bin folder to windows path variable, for this click right on computer and choose “properties” > click on “advanced system settings”, select “the advanced tab”, hit “environment variables” > under system variables, go down and choose “path” then hit “edit” > carefully go to the right of the variable value field and make sure to not delete anything > at end of field include semicolon. This process is almost identical to when you are adding an environment Path for Python to work on Windows 11.
  3. You need to verify that the install was successful for this: go to “start” and type “cmd” in the search field and hit “enter” > enter gcc in the terminal which appears and hit “enter”.
  4. Done, this will show you that MinGW is now properly working.

How to Fix (The File has been Downloaded Incorrectly) Error in MinGW

If you have just downloaded MingGW and were trying to install it but the above error struck you then follow the 5 steps below to fix it:

  1. You need to download the “MinGW-w64 zip file”.
  2. After this simply unzip the files and copy them to Paul\mingw64.
  3. Then add this to Environment Variables in Windows 11 or 10.

It does not depend upon Microsoft C-Runtime DLLS so it is possible to both compile and link apps with it without needing any additional libraries. When used in conjunction with SDSS which is a small device C compiler then you can develop efficient embedded systems app targeting huge range of devices.

Related posts you may like:

  • Download Dev-C++ Free for PC in 64-bit.
  • Atom Editor For Windows 11 Download.
  • Code::Blocks Download for Windows 11.

MinGW is your go-to software if you are a developer creating apps for Windows. MinGW Download for Windows 11 in 64-bit allows you to create apps that will work natively on any PC. MinGW-64 is the same however it was improved and came with more libraries for native programming.

Title Information
Name: Standard: MinGW
Improved: MinGW-w64
License: Free (General Public License)
OS Support: Windows 10 and Windows 11
Author: Colin Peters
Version: 10.0 (Latest)
Size: 15.6 MB for Zip Archive
85 KB for Installer

MinGW Free Download

Наверное, многие разработчики сталкивались с проблемой выбора или создания окружения для программирования. На мой взгляд, бесплатное окружение на основе порта компилятора gcc (MinGW) и какая-нибудь IDE, совместимая с ним – наиболее приемлемый выбор.

В этой статье я рассмотрю установку компилятора, его интеграцию с интегрированной средой разработки, его настройку, установку и компиляцию сторонних библиотек. Рассмотрю некоторые полезные утилиты для облегчения сборки исходного кода и системы контроля версий файлов.

Статья со временем будет обновляться и дополняться.

MinGW/MSYS и QtCreator

Данный мануал создавался с целью быть пособием и заметкой для разработчиков, помочь им собрать и настроить собственное окружение для разработки нативных приложений в семействе OS Windows.

Содержание:

1. Установка и настройка тулчейна MinGW/MSYS и дополнительного ПО

Давайте разберемся, что такое MinGW, а что такое MSYS и для чего они нужны.

MinGW – сокращение от “Minimalist GNU for Windows”, по своей сути MinGW является небольшой и лаконичной средой разработки нативных приложений для семейства OS Microsoft Windows.

MinGW предоставляет полный набор Open Source инструментов для программирования, который подходит для разработки нативного Windows приложения, которое не будет зависеть от C-Runtime библиотек каких-либо третьих сторон.

MinGW поддерживает идею минимализма, поэтому он никогда не будет полностью поддерживать среду исполнения POSIX, для развертывания POSIX приложений на Windows, для их полной поддержки существует Cygwin. В первую очередь MinGW предназначен для использования разработчиками, которые привыкли работать с компилятором gcc.

MinGW включает в себя:

  • Порт GNU Compiler Collection (GCC), который включает в себя компиляторы таких языков, как: C, C++, ADA и Fortran.
  • Порт GNU Binutils для Windows (as, ld, ar)
  • Консольный установщик (mingw-get) для MinGW и MSYS
  • Графический установщик (mingw-get-inst)

MSYS – сокращение от “Minimal SYStem”, это порт командной оболочки Bourne Shell (sh) для Windows. Он предлагается в качестве альтернативы “cmd.exe” от Microsoft’а. Оболочка хорошо подходит для портирования существующих приложений и библиотек, которые есть в *nix системах и включает в себя небольшой выбор портов инструментов Unix, облегчающих задачу портирования.

Комбинация MinGW и MSYS предоставляет разработчикам небольшую независимую среду, которая может быть легко загружена на съемные носители, не требуя добавления записей в файлы реестра.

Полезные ссылки:

Официальный сайт MinGW

Вики по MinGW [ENG]

<< Перейти к содержанию

1.1. Устанавливаем MinGW, оболочку MSYS и настраиваем окружение

1.1.1. Скачиваем официальный онлайн-установщик MinGW, на данный момент последняя версия установщика 20120426: mingw-get-inst-latest.exe

Запускаем установщик, нажимаем “Next”, “Next”, выбираем “Use pre-packaged repository catalogues”:

Установка тулчейна MinGW/MSYS

Жмем “Next” и соглашаемся с лицензией, снова “Next”, и теперь выбираем путь для установки:

Установка тулчейна MinGW/MSYS

Рекомендуется выбирать путь без пробелов, лучше всего устанавливать MinGW в корень диска, т.е в “C:\MinGW”. Я выбрал “C:\Qt\MinGW”, так удобнее будет подключить MinGW к IDE QtCreator. Если вы планируете дальше интегрировать свой тулчейн в какую-нибуть IDE, сделайте аналогично и нажмите “Next”. Необходимость наличия группы ярлыков в меню “Пуск” – по вашему желанию. Но можно не создавать (отметив галочкой “Don’t create a Start Menu folder) и нажать “Next”.

Выбираем следующие пакеты:

  • C Compiler
  • C++ Compiler
  • MSYS Basic System
  • MinGW Developer ToolKit

и жмем “Next”

Установка тулчейна MinGW/MSYS

затем подтверждаем установку выбранных пакетов кнопкой “Install”.

Откроется консольное окно, в котором будет отображаться процесс скачивания и установки пакетов. Проследите, чтобы процесс выполнялся без ошибок (например, если будут недоступны сервера репозитория, необходимо повторить попытку установки с этими же параметрами позже) и дождитесь завершения процесса.

Теперь необходимо добавить в переменную окружения PATH путь до директории “C:\Qt\MinGW\bin”. Делается это следующим образом (для Win7, для остальных систем по аналогии):

1.1.1.1. Нажмите правой клавишей мышки на ярлык “Компьютер” и кликните на пункт меню “Свойства”.

1.1.1.2. Кликните слева на пункт “Дополнительные параметры системы”, в появившемся окне нажмите кнопку “Переменные среды”.

1.1.1.3. В верхнем списке переменных найдите переменную “Path”, кликните на нее два раза для редактирования.

1.1.1.4. Добавьте путь до директории “\bin”. В моем случае это будет “C:\Qt\MinGW\bin”, разделение путей выполняется символом “;”.

Переменная PATH

1.1.1.5. Подробнее можно прочесть здесь.

Все, тулчейн MinGW и его оболочка MSYS установлены. Теперь можно перейти к установке дополнительных программ, которые помогут облегчить нам жизнь.

1.1.2. Установка дополнительных пакетов и полезные команды и утилиты.

Сразу после установки MinGW и MSYS будет полезно установить некоторые пакеты.

Для этого запускаем файл “C:\Qt\MinGW\msys\1.0\msys.bat”, для которого, кстати, полезно будет создать ярлык, и набираем там такие команды (переход на новую строку аналогичен нажатию клавиши “Enter”):

mingw-get install msys-man
mingw-get install msys-wget
mingw-get install msys-zip
mingw-get install msys-unzip
mingw-get install msys-bzip2
mingw-get install msys-perl

Команда “mingw-get install” аналогична популярной на разных Linux-дистрибутивах, наверное, знакомой многим, команде “apt-get install”. Обе эти команды скачают и установят вам нужный пакет из репозиториев.

Список доступных пакетов для установки можно посмотреть по команде “mingw-get show”, для лучшего восприятия его можно отсортировать следующим образом:

mingw-get show | grep "Package: "

Удалить установленный пакет можно командой “mingw-get remove выбранный_вами_пакет”

Обновить пакет можно командой “mingw-get upgrade выбранный_вами_пакет”, команда “mingw-get upgrade” обновит все пакеты вашего тулчейна полностью.

На этом базовая настройка тулчейна закончена, можно приступить к сборке/переносу проектов или более тонкой настройке.

1.1.3. Какие утилиты будет полезно использовать вместе с MinGW?

Для редактирования исходников и других файлов можно использовать консольный редактор “vim”, который идет в комплекте с MinGW’ом.

Но если вы привыкли к оконному интерфейсу, воспользуйтесь отличнейшим редактором – Notepad++.

Для распаковки содержимого архивов можно использовать консольные команды или архиваторы с GUI, такие как WinRar, например.

Лично я рекомендую использовать 7-zip.

1.1.4. Что можно почитать?

Список литературы можно найти здесь: http://www.linuxcenter.ru/

Основы работы в консоли

Интерпретатор командного языка shell

Самые необходимые команды *nix для обработки ввода/вывода

Совет по поводу определения fstab

<< Перейти к содержанию

1.2. Настройка MinGW/MSYS: используем продвинутую консоль, вместо msys.bat

Возможно многим разработчикам стандартный шел, вызываемый по “msys.bat” покажется унылым и скучным:

Стандартное окно MSYS тулчейна MinGW

Еще бы, работать в такой консоли достаточно неудобно, хотя бы из-за отсутствия нормального копипаста.

Но к счастью, есть такой проект как ConEmu от Maximus5‘а, являющийся продвинутым форком ConEmu by Zoin.

ConEmu – это очень удобный и симпатичный терминал, поддерживающий вкладки. Его подробнейшее описание, написанное самим автором этой программы, можно прочитать здесь. Самым главным преимуществом для меня является нормальный копипаст. Здесь он реализован просто замечательно, с помощью левой кнопки мышки или сочетания “Alt + Левая кнопка мышки” можно выделить блок или строку в консоли соответственно. После выделения строка сразу автоматом скопируется в буфер. Сочетание клавиш “Ctrl + V” или клик левой клавишей мышки вставляет первую строку из буфера, а “Shift + Insert + Enter” вставляет сразу все строки.

Для связки ConEmu и MinGW, нам необходимо скачать специально подготовленные пакеты ConEmu для MinGW. Установка весьма проста и тривиальна – нужно лишь распаковать “-mingw32” и “-mingw64” пакеты в корневую папку компилятора (в моем случае это “C:\Qt\MinGW”).

Если вы не хотите настраивать консоль, можете скачать уже настроенную мной:

Скачать ConEmu.zip, 1.7 MB

Выглядит она следующим образом (изображение кликабельно):

Стандартное окно sh в MinGW

И устанавливается абсолютно аналогично.

На мой взгляд панелька в стиле терминала Quake, выезжающая сверху экрана по нажатию “Ctrl + ~”, не только эффектно выглядит, но и очень удобна в использовании.

При желании, конечно, можно все очень и очень гибко настраивать под себя, программа ConEmu имеет множество настроек и совместима со всеми последними OS семейства Windows.

<< Перейти к содержанию

1.3. Компиляция и установка утилиты pkg-config

Официальный сайт pkg-config: http://pkg-config.freedesktop.org/

pkg-config это утилита, которая предоставляет общий интерфейс для получения информации об установленных в системе программных библиотеках с целью компиляции программ из исходного кода.

В нашем случае она нужна для компиляции некоторых библиотек и проектов.

1.3.1. Скачиваем последнюю версию исходников pkg-config’а, на момент написания статьи это 0.28: pkg-config-0.28.tar.gz

1.3.2. Распаковываем архив в папку “C:\Qt\build”, исходники pkg-config’а должны быть в папке “C:\Qt\build\pkg-config-0.28”.

1.3.3. Компилируем pkg-config и библиотеку GNU C Library (glibc), идущую в комплекте:

Запускаем “C:\Qt\MinGW\msys\1.0\msys.bat” или ConEmu и набираем в консольном окне такие команды:

Кстати, небольшой, но полезный совет! Если у вас многоядерный процессор, то при вызове утилиты make можно воспользоваться ключом “-jX”, где X – число одновременно выполняемых потоков компиляции, которое зависит от количества ядер процессора n. Обычно рекомендуется брать X = n + 1, но если процессор поддерживает технологию Hyper-threading, то число потоков следует брать X = 2 · N + 1. То есть команды компиляции для двухъядерного процессора будут следующими: “make -j3” и “make -j3 install”. Благодаря распараллеливанию компиляции время сборки крупных проектов значительно сокращается.

export CFLAGS="-march=native"
cd /c/Qt/build/pkg-config-0.28
./configure --with-internal-glib --prefix=/mingw
make
make install
export -n CFLAGS

Утилита и библиотека скомпилировались и установились.

1.3.4. Чтобы обойти ошибку в MSYS, следует выполнить в консоли блок таких команд:

cat > /mingw/bin/pkg-config.sh << "EOF"
#!/bin/sh
if pkg-config "$@" > /dev/null 2>&1 ; then
res=true
else
res=false
fi
pkg-config "$@" | tr -d \\r && $res

EOF

Это создаст файл “pkg-config.sh” в папке “C:\Qt\MinGW\bin”

1.3.5. Теперь нужно сделать скрипт исполнительным и добавить переменную в альтернативное окружение:

chmod ugo+x /mingw/bin/pkg-config.sh && \
echo "PKG_CONFIG=/mingw/bin/pkg-config.sh" >> /etc/profile.local && \
echo "export PKG_CONFIG" >> /etc/profile.local

1.3.6. Когда вам понадобится альтернативное окружение, вы всегда можете подгрузить его командой:

source /etc/profile.local

<< Перейти к содержанию

1.4. Установка CMake, примеры использования

Официальный сайт CMake: http://www.cmake.org

CMake (cross platform make) – это кроссплатформенная система автоматизации генерации файлов для сборки программного обеспечения из исходного кода.

CMake не занимается непосредственно сборкой исходных кодов, он лишь генерирует файлы для управления сборкой проекта из файлов “CMakeLists.txt”. Это могут быть:

  • Обычные Makefile, которые используются в системах Unix для сборки с помощью утилиты make;
  • Файлы projects/workspaces (*.dsp/*.dsw) в системах Windows для сборки с помощью Microsoft Visual C++;
  • Проекты XCode в Mac OS X.

1.4.1 Установка CMake:

1.4.1.1. Скачиваем установочный пакет CMake с официального сайта (последняя версия на момент написания статьи – 2.8.10.2): cmake-2.8.10.2-win32-x86.exe

1.4.1.2. Сохраняем установочный пакет в любое удобное для вас место и запускаем “cmake-2.8.10.2-win32-x86.exe”.

1.4.1.3. Щелкаем “Далее”, соглашаемся с лицензией, выбираем пункт “Add CMake to the system PATH for all users”

Установка CMake

Эта опция установит в переменную окружения PATH ту папку, в которой будет установлен CMake.

Ярлык создаем по желанию, щелкаем “Далее”.

1.4.1.4. Выбираем папку, в которую будет установлен CMake. Я рекомендую выбрать папку “C:\Qt\CMake”, так как потом можно будет легко интегрировать его со средой разработки (IDE). Щелкаем “Далее”.

Установка CMake

1.4.1.5. При желании можно создать группу ярлыков в меню “Пуск”. Щелкаем “Установить”, ждем окончания установки и нажимаем “Готово”. Всё! CMake установлен.

1.4.2 Примеры использования CMake:

1.4.2.1. Немного основ, общие советы.

Для сборки проекта с помощью CMake в корневой директории проекта создается файл “CMakeLists.txt”, описывающий этот проект и его зависимости. Примеры компилирования библиотек с помощью утилиты CMake можно найти здесь:

Компиляция и установка библиотеки OpenAL

Компиляция и установка библиотеки ALUT (freealut)

1.4.2.2. Пример моего “CMakeLists.txt” для сборки примера “oldglutdemo.c” из пункта 2.2.9.1, с использованием библиотеки GLUT:

project(GLUT-Req)
cmake_minimum_required(VERSION 2.8)
aux_source_directory(. SRC_LIST)

set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} "C:/Qt/MinGW/lib")
set(CMAKE_INCLUDE_PATH ${CMAKE_INCLUDE_PATH} "C:/Qt/MinGW/include/GL;C:/Qt/MinGW/include")

##########################################################
find_package(OpenGL REQUIRED)
if(NOT OPENGL_FOUND)
    message(SEND_ERROR "Failed to find OpenGL")
    return()
else()
    include_directories(${OPENGL_INCLUDE_DIR})
endif()
##########################################################
find_package(GLUT REQUIRED)
if(NOT GLUT_FOUND)
    message(SEND_ERROR "Failed to find GLUT")
    return()
else()
    include_directories(${GLUT_INCLUDE_DIR})
endif()
##########################################################

link_libraries(${OPENGL_LIBRARY} ${GLUT_LIBRARIES})
add_executable(${PROJECT_NAME} ${SRC_LIST})

Текст выше нужно выделить и сохранить в файл с именем “CMakeLists.txt”, затем файл “oldglutdemo.c” и “CMakeLists.txt” нужно поместить в отдельную папку, например “C:\Qt\build\GLUT\glut-3.7.6\cmake-test”.

Далее набираем в консольном окне такие команды:

cmake -G "MSYS Makefiles"
make
make install

И в итоге получаем исполнительный файл “GLUT-Req.exe”. Обратите внимание на:

set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} "C:/Qt/MinGW/lib")
set(CMAKE_INCLUDE_PATH ${CMAKE_INCLUDE_PATH} "C:/Qt/MinGW/include/GL;C:/Qt/MinGW/include")

Без установки этих переменных CMake не видит библиотеку GLUT.

1.4.2.3. Переменные:

cmake -DCMAKE_INSTALL_PREFIX:PATH="/mingw" -DCMAKE_C_FLAGS:STRING="-march=i686" -DCMAKE_CPP_FLAGS:STRING="" -DCMAKE_CXX_FLAGS:STRING="" \
-DCMAKE_EXE_LINKER_FLAGS:STRING="-L/usr/local/lib -L/opt/local/lib" -DCMAKE_MODULE_LINKER_FLAGS:STRING="-L/usr/local/lib -L/opt/local/lib" \
-DCMAKE_SHARED_LINKER_FLAGS:STRING="-L/usr/local/lib -L/opt/local/lib" -G "MSYS Makefiles"

Из названий переменных все должно быть понятно:

-DCMAKE_INSTALL_PREFIX:PATH #- путь, куда будет устанавливаться программа после "make install".
-DCMAKE_C_FLAGS:STRING #- Установка флагов для файлов "*.c"
-DCMAKE_CPP_FLAGS:STRING / -DCMAKE_CXX_FLAGS:STRING #- Установка флагов для файлов "*.cpp" и "*.cxx" соответственно.
-DCMAKE_EXE_LINKER_FLAGS:STRING / -DCMAKE_MODULE_LINKER_FLAGS:STRING / -DCMAKE_SHARED_LINKER_FLAGS:STRING #- Установка файлов линковки.

Каталог с исходниками можно оставить в чистом состоянии. Для этого следует перейти в сборочный каталог (в данном случае “build_project”) и разверенуть в него дерево исходного кода с последующей генерацией Makefile’ов. Пример:

cd build_project/
cmake -G "MSYS Makefiles" --build ../project/src/

В аргумент “build” необходимо прописать путь до каталога с исходным кодом, который нужно оставить чистым. После выполнения команды в каталоге “build_project/” создастся полная копия дерева проекта и в этом каталоге можно будет выполнять дальнейшую сборку.

1.4.2.4. Кросскомпиляция с помощью CMake.

В папке с проектом создаем файл с расширением “.cmake”, например, “Toolchain-eldk-ppc74xx.cmake”, с подобным содержимым:

# this one is important
SET(CMAKE_SYSTEM_NAME Linux)
#this one not so much
SET(CMAKE_SYSTEM_VERSION 1)

# specify the cross compiler
SET(CMAKE_C_COMPILER   /opt/eldk-2007-01-19/usr/bin/ppc_74xx-gcc)
SET(CMAKE_CXX_COMPILER /opt/eldk-2007-01-19/usr/bin/ppc_74xx-g++)

# where is the target environment 
SET(CMAKE_FIND_ROOT_PATH  /opt/eldk-2007-01-19/ppc_74xx /home/alex/eldk-ppc74xx-inst)

# search for programs in the build host directories
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
# for libraries and headers in the target directories
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

И конфигурируем проект:

cmake -DCMAKE_TOOLCHAIN_FILE=Toolchain-eldk-ppc74xx.cmake

Если переменная “CMAKE_FIND_ROOT_PATH_MODE_PROGRAM” установлена в NEVER, то будут использоваться инструменты из недр вашей системы. Если она установлена в ONLY, то будут использованы инструменты из каталога “CMAKE_FIND_ROOT_PATH/bin”. В этом случае следует быть осторожным, так как из поля видимости CMake пропадают некоторые кросс-утилиты из состава binutils, например tuple-ar и tuple-ranlib. Решить эту поблему можно с помощью создания симлинков на эти инструменты. Симлинки следует расположить в директорию “CMAKE_FIND_ROOT_PATH/bin”. В противном случае, при сборке проекта может возникать следующая ошибка:

Error running link command: No such file or directory

Подробнее можно прочесть тут: CMake Cross Compiling

1.4.3 Что почитать про CMake? (литература):

Из наиболее полезного:

  1. CMake Documentation [ENG]
  2. Введение в CMake [RUS]
  3. Используем Cmake для создания Makefile [RUS]

<< Перейти к содержанию

http://exlmoto.ru/mingw-development-environment/
http://www.linux.org.ru/forum/desktop/10819573
https://msys2.github.io/

  • Minecraft pocket edition скачать на компьютер windows скачать бесплатно
  • Minecraft windows 10 edition пиратка
  • Mini windows xp pro sp3
  • Microsoft создать образ windows 10
  • Minecraft windows 10 edition код активации бесплатно