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!