linux上mingw编译命令
linux上mingw编译命令详细介绍
在 Linux 上使用 MinGW-w64(支持 32/64 位 Windows 程序编译的工具链)进行交叉编译,步骤和常用命令如下:
一、安装 MinGW-w64
1. Debian/Ubuntu 系列
bash
updatemingw-w64
2. Fedora 系列
bash
dnf mingw-w64
二、编译命令语法
根据目标架构(32 位或 64 位),编译命令前缀不同:
- 64 位 Windows 程序:前缀为
x86_64-w64-mingw32- - 32 位 Windows 程序:前缀为
i686-w64-mingw32-
常用命令格式:
bash
前缀gcc 编译选项 源文件 输出文件名.exe
三、常用编译示例
1. 编译 C 程序(64 位)
bash
x86_64-w64-mingw32-gcc hello.c hello64.exe
2. 编译 C 程序(32 位)
bash
i686-w64-mingw32-gcc hello.c hello32.exe
3. 编译 C++ 程序
bash
x86_64-w64-mingw32-g++ main.cpp main64.exe
4. 链接静态库(如 Windows 系统库)
bash
x86_64-w64-mingw32-gcc source.c program.exe
5. 生成图形界面程序(跳过控制台窗口)
bash
x86_64-w64-mingw32-gcc source.c gui_app.exe
四、关键选项说明
| 选项 | 说明 |
|---|---|
-m32 / -m64 |
显式指定 32 位或 64 位目标(部分场景需配合前缀使用) |
-static |
静态链接所有库(生成独立 exe,但文件体积较大) |
-D__MINGW32__ |
定义宏以兼容 Windows 特定代码 |
-I<路径> |
指定头文件路径(如 Windows SDK 头文件) |
-L<路径> |
指定库文件路径 |
五、验证输出文件
编译完成后,生成的 .exe 文件可通过 Wine(Linux 上的 Windows 兼容层)测试运行:
bash
wine hello64.exe
912wine hello64.exe
通过上述命令,即可在 Linux 环境下生成可在 Windows 系统运行的二进制程序。注意根据目标平台选择正确的前缀和编译选项,确保依赖库正确链接。