mingw installation on Linux

Sam*_*Sam 9 linux debian mingw

I'm currently trying to compile Windows applications on a Linux OS. I need mingw to do this. I read that Debian comes with mingw package already installed. When I run the shell command:

apt-cache search mingw
Run Code Online (Sandbox Code Playgroud)

I get an output:

binutils-mingw-w64 - Cross-binutils for Win32 and Win64 using MinGW-w64
binutils-mingw-w64-i686 - Cross-binutils for Win32 (x86) using MinGW-w64
binutils-mingw-w64-x86-64 - Cross-binutils for Win64 (x64) using MinGW-w64
g++-mingw-w64 - GNU C++ compiler for MinGW-w64
g++-mingw-w64-i686 - GNU C++ compiler for MinGW-w64 targeting Win32
g++-mingw-w64-x86-64 - GNU C++ compiler for MinGW-w64 targeting Win64
gcc-mingw-w64 - GNU C compiler for MinGW-w64
gcc-mingw-w64-base - GNU Compiler Collection for MinGW-w64 (base package)
gcc-mingw-w64-i686 - GNU C compiler for MinGW-w64 targeting Win32
gcc-mingw-w64-x86-64 - GNU C compiler for MinGW-w64 targeting Win64
gcc-mingw32 - GNU Compiler Collection for MinGW32 (transition package)
gfortran-mingw-w64 - GNU Fortran compiler for MinGW-w64
gfortran-mingw-w64-i686 - GNU Fortran compiler for MinGW-w64 targeting Win32
gfortran-mingw-w64-x86-64 - GNU Fortran compiler for MinGW-w64 targeting Win64
gnat-mingw-w64 - GNU Ada compiler for MinGW-w64
gnat-mingw-w64-i686 - GNU Ada compiler for MinGW-w64 targeting Win32
gnat-mingw-w64-x86-64 - GNU Ada compiler for MinGW-w64 targeting Win64
gobjc++-mingw-w64 - GNU Objective-C++ compiler for MinGW-w64
gobjc++-mingw-w64-i686 - GNU Objective-C++ compiler for MinGW-w64 targeting Win32
gobjc++-mingw-w64-x86-64 - GNU Objective-C++ compiler for MinGW-w64 targeting Win64
gobjc-mingw-w64 - GNU Objective-C compiler for MinGW-w64
gobjc-mingw-w64-i686 - GNU Objective-C compiler for MinGW-w64 targeting Win32
gobjc-mingw-w64-x86-64 - GNU Objective-C compiler for MinGW-w64 targeting Win64
gdb-mingw-w64 - Cross-debugger for Win32 and Win64 using MinGW-w64
gdb-mingw-w64-target - Cross-debugger server for Win32 and Win64 using MinGW-w64
libconfig++-dbg - parsing and manipulation of structured config files(C++ debug symbols)
libconfig++-dev - parsing and manipulation of structured config files(C++ development)
libconfig++9 - parsing and manipulation of structured configuration files(C++ binding)
libconfig-dbg - parsing and manipulation of structured config files(debug symbols)
libconfig-dev - parsing and manipulation of structured config files(development)
libconfig-doc - parsing and manipulation of structured config files(Documentation)
libconfig9 - parsing and manipulation of structured configuration files
mingw-ocaml - OCaml cross-compiler based on mingw
mingw32-ocaml - OCaml cross-compiler based on mingw -- dummy transitional package
mingw-w64 - Development environment targetting 32- and 64-bit Windows
mingw-w64-dev - Development files for MinGW-w64 (transitional package)
mingw-w64-i686-dev - Development files for MinGW-w64 targeting Win32
mingw-w64-tools - Development tools for 32- and 64-bit Windows
mingw-w64-x86-64-dev - Development files for MinGW-w64 targeting Win64
mingw32 - Minimalist GNU win32 (cross) compiler
mingw32-binutils - Minimalist GNU win32 (cross) binutils
mingw32-runtime - Minimalist GNU win32 (cross) runtime
Run Code Online (Sandbox Code Playgroud)

When I check the /usr/bin/ and /usr/lib for i686-w64-mingw32 I can't find it anywhere.

我还发现搜索 sing find -name " mingw " 运气不佳。

Debian 是否带有 mingw 还是我必须安装它?如果它确实与 mingw 一起提供,我该如何使用它?

mar*_*usm 13

使用 wine64 安装工具链(用于运行 Windows 可执行文件):

sudo apt-get install gcc-mingw-w64-x86-64 g++-mingw-w64-x86-64 wine64
Run Code Online (Sandbox Code Playgroud)

举一个例子程序hello.c

#include <stdio.h>
int main() {
    printf("Hello world!\n");
}
Run Code Online (Sandbox Code Playgroud)

编译:

x86_64-w64-mingw32-gcc -g -o hello hello.c
Run Code Online (Sandbox Code Playgroud)

检查结果:

file hello.exe
Run Code Online (Sandbox Code Playgroud)

应该输出如下内容:

hello.exe: PE32+ executable (console) x86-64, for MS Windows
Run Code Online (Sandbox Code Playgroud)

跑:

hello.exe: PE32+ executable (console) x86-64, for MS Windows
Run Code Online (Sandbox Code Playgroud)

也有gdb-mingw-w64提供,/usr/bin/x86_64-w64-mingw32-gdb但我不知道它是如何工作的(当我尝试时说Don't know how to run. Try "help target".)。

可以使用/usr/share/win64/gdbserver.exe(从gdb-mingw-w64-target包)在 Linux 上远程交叉调试 Windows 二进制文件。例如:

wine64 ./hello.exe
Hello world!
Run Code Online (Sandbox Code Playgroud)

然后打开常规gdb会话:

/usr/share/win64/gdbserver.exe localhost:1234 ./hello.exe
Listening on port 1234
Run Code Online (Sandbox Code Playgroud)