如何在 Linux 上调用 MinGW 交叉编译器?

我有一个项目要为 Windows 交叉编译.我有合适的 Makefile 并且一切都适用于 g++.我跑了

I have a project that I want to cross-compile for Windows. I have the appropriate Makefile and everything works with g++. I've run

$ apt install mingw-w64

并下载了 500 MB 的软件包,但我不知道如何实际运行它.没有 mingw 可执行文件,那么我如何实际使用它进行编译?

and downloaded 500 MB of packages, but I cannot find out how to actually run it. There is no mingw executable, so how do I actually compile with it?

推荐答案

如果您查看 mingw-w64 的组成软件包的 Ubuntu 软件包网络服务器上的文件列表:

If you look at the file lists on the Ubuntu package webserver for mingw-w64's constituent packages:

  • gcc-mingw-w64-x86-64
  • g++-mingw-w64-x86-64
  • binutils-mingw-w64-x86-64
  • mingw-w64-x86-64位开发
  • gcc-mingw-w64-i686
  • g++-mingw-w64-i686
  • binutils-mingw-w64-i686
  • mingw-w64-i686-dev

您可以看到 mingw-w64 提供了一个工具链,即一组用于编译您的代码的替代工具(编译器、链接器、头文件等)另一个系统.

You can see that mingw-w64 provides a toolchain, i.e. a set of alternative tools (compiler, linker, headers, etc.) used to compile your code for another system.

假设您要为 64 位系统编译 C++ 代码,则需要使用 /usr/bin/x86_64-w64-mingw32-g++-win32.您可以使用 CXX 环境变量告诉大多数 Makefile 使用该编译器来编译代码.

Assuming you want to compile C++ code for a 64-bit system, you'll need to use /usr/bin/x86_64-w64-mingw32-g++-win32. You can use the CXX environment variable to tell most Makefiles to use that compiler to compile code.

相关文章