Home >Backend Development >C++ >How to Cross-Compile Windows Executables on Linux using MinGW?

How to Cross-Compile Windows Executables on Linux using MinGW?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-22 10:12:58372browse

How to Cross-Compile Windows Executables on Linux using MinGW?

Cross-Compiling Windows Executables on Linux with gcc/g

In the context of cross-platform development, the question arises of how to compile C code written on Linux for Windows using gcc or g . This question becomes particularly relevant when a Linux-based system is the only available resource.

To address this need, the MinGW (Minimalist GNU for Windows) project provides a solution. MinGW is a development environment that allows for cross-compilation of Windows applications from non-Windows systems.

Installation

For Ubuntu-based Linux distributions, MinGW can be installed via the apt package manager:

$ apt-cache search mingw
[...]
g++-mingw-w64 - GNU C++ compiler for MinGW-w64
gcc-mingw-w64 - GNU C compiler for MinGW-w64
mingw-w64 - Development environment targeting 32- and 64-bit Windows
[...]

Compilation

To cross-compile Windows executables, modify the compilation command to utilize the MinGW toolchain. For example, for a 64-bit Windows target:

x86_64-w64-mingw32-gcc-win32 -Wall -lglut part8.cpp -o part8.exe

This command instructs the compiler to use the 64-bit MinGW toolchain and produce a static Windows executable named "part8.exe."

Considerations

When cross-compiling for Windows on Linux, it's important to ensure that the correct headers and libraries are available to the compiler. In the case of this example, FreeGLUT headers and libraries for Windows will be required.

By leveraging the MinGW toolchain, developers can seamlessly cross-compile and link Windows applications from their Linux systems, enabling them to extend their development capabilities without the need for a Windows environment.

The above is the detailed content of How to Cross-Compile Windows Executables on Linux using MinGW?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn