从 Linux 到 Windows 交叉编译现代 C++

Cross compile modern C++ from Linux to Windows

我有一些现代 C++ 源代码(比如 C++17),我可以在 Linux 上为 Linux 32/64 和 [=25= 编译复杂的源代码] 对于 Windows 32/64 使用 mingw-w64(来自 msys2)。

现在我想在 Linux 上交叉编译 Windows,以避免使用虚拟机来编译。

所以我尝试从 Ubuntu 存储库安装 mingw-w64,但它是用 --enable-threads=win32 编译的,它与 std::mutex 不兼容,例如,从 C++ 11.

我无法从源代码编译 mingw-w64-v7(它只编译一堆库而不是编译器本身),我无法获得已为 [=29 编译的单个二进制文件=] 64 位之一。

如何设置交叉编译工具链,从 Linux 编译现代 C++ 以获得 Windows 32 位和 64 位可执行文件?

我的 Ubuntu 18.04 也有一个 POSIX-threaded mingw-w64 工具链。试试 update-alternatives --list x86_64-w64-mingw32-g++.