从 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++
.
我有一些现代 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++
.