如何在Ubuntu上安装mingw32?

16

我想在我的Ubuntu(16.10)上安装mingw32,因为我想生成一个x86的Windows版本应用程序。我的Makefile(CMake)需要“i586-mingw32msvc-g ++”可执行文件。

我尝试过“sudo apt install mingw32”,但它不起作用(出现“找不到软件包”错误)。

3个回答

31

仔细看看实际可用的内容:

edd@max:~$ apt-cache search mingw-
libassuan-mingw-w64-dev - IPC library for the GnuPG components -- Windows port
libgcrypt-mingw-w64-dev - LGPL Crypto library - Windows development
libgpg-error-mingw-w64-dev - library of error values and messages in GnuPG (Windows development)
libksba-mingw-w64-dev - X.509 and CMS support library (Windows development)
libnpth-mingw-w64-dev - replacement for GNU Pth using system threads (Windows dev)
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
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
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-base - GNU Ada compiler for MinGW-w64 (base package)
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
libz-mingw-w64 - compression library - Windows runtime
libz-mingw-w64-dev - compression library - Windows development files
mingw-ocaml - ocaml-mingw-w64 transitional dummy package
mingw-w64 - Development environment targeting 32- and 64-bit Windows
mingw-w64-common - Common files for Mingw-w64
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
ocaml-mingw-w64 - OCaml cross-compiler based on mingw -- Meta-package
ocaml-mingw-w64-i686 - OCaml cross-compiler based on mingw -- 32 bit compiler
ocaml-mingw-w64-x86-64 - OCaml cross-compiler based on mingw -- 64 bit compiler
edd@max:~$

因此,sudo apt-get install gcc-mingw-w64很可能是您想要的,并且您应该通过设置适当的编译器选项(可能是-m32)来构建32位可执行文件。


3
安装包名称中有拼写错误(旧的是gcc-mingw-64,新的应该为gcc-mingw-w64)。请修正此错误。 - mojjj
1
@mojjj 我已经修复了。 - Eugen Konkov
1
mingw-w64实际上不是mingw32(请参阅https://dev59.com/MV8e5IYBdhLWcg3wlbTx),但因为楼主可能只想要一个可用的交叉编译器,而不是真正的mingw32,所以这仍然是正确的答案。 - stijn
1
如果您想使用严格的32位编译器,则可以安装gcc-mingw-w64-i686软件包。 - Chef Pharaoh

6

我尝试了 sudo apt-get install gcc-mingw-w64

之后,我使用以下命令编译代码:

i686-w64-mingw32-gcc-win32 input_code.c -o output.exe

0

如果你记不住编译器的名称,可以在Linux系统上使用别名,你可以从.bashrc文件中进行修改。

所以mingw的位置在这里 -> /usr/bin/i686-w64-mingw32-gcc-win32

下面你可以创建一个简化mingw编译器的别名:

alias mingw=/usr/bin/i686-w64-mingw32-gcc-win32

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接