
在 Linux 下用 C++ 编译 Windows 程序,核心是使用 MinGW-w64 交叉编译工具链,而不是普通 GCC。它能生成 Windows 可执行文件(.exe),无需 Windows 系统或 Wine。
安装 MinGW-w64 交叉编译器
Ubuntu/Debian 系统直接安装:
- sudo apt update && sudo apt install g++-mingw-w64-x86-64(生成 64 位 Windows 程序)
- 如需 32 位,装 g++-mingw-w64-i686
- 安装后,编译器命令通常是 x86_64-w64-mingw32-g++(64 位)或 i686-w64-mingw32-g++(32 位)
写一个简单测试程序
新建 hello.cpp:
#includeint main() { std::cout << "Hello from Linux! This runs on Windows.\n"; return 0; }
注意:不依赖 Linux 特有 API(如 fork、epoll),避免链接失败。
立即学习“C++免费学习笔记(深入)”;
用交叉编译器构建 .exe
终端执行(以 64 位为例):
- x86_64-w64-mingw32-g++ -o hello.exe hello.cpp
- 加 -static-libgcc -static-libstdc++ 可静态链接运行时库,减少 Windows 上的 DLL 依赖
- 生成的 hello.exe 可直接复制到 Windows 运行(CMD 或 PowerShell)











