Linux 使用 Wine 執行 MinGW 編譯的 C++ .exe 檔案

💡 原文中文,约1600字,阅读约需4分钟。
📝

内容提要

本文介绍了如何在Linux上使用Wine运行MinGW编译的.exe文件。首先需安装Wine并更新系统软件包,然后确保安装了mingw-w64工具链。通过终端进入.exe文件所在目录,使用Wine执行该文件。如遇问题,可设置环境变量解决dll缺失问题。

🔎

延伸解读

Wine 的角色:兼容层而非虚拟机

文章明确指出 Wine 不是虚拟机,而是允许直接在 Linux 上执行 Windows 应用程式的开源工具。这意味着它不需要安装完整的 Windows 系统,资源占用相对较低。但这也代表兼容性取决于 Wine 的实现,并非所有 .exe 都能完美运行。对于 MinGW 编译的简单 C++ 程序,通常可以顺利执行,但若程序依赖特定 Windows API 或图形库,仍可能遇到问题。

环境变量 WINEPATH 的用途与设置要点

当 Wine 执行 .exe 时若出现找不到 dll 的错误,文章建议设置 WINEPATH 环境变量,指向 MinGW 工具链的库目录。例如 export WINEPATH="/usr/x86_64-w64-mingw32/lib;/usr/lib/gcc/x86_64-w64-mingw32/10-posix"。需注意路径中的版本号(如 10-posix)可能因系统安装而异,应通过 ls /usr/lib/gcc/x86_64-w64-mingw32/ 确认实际存在的目录,再填入正确路径。

使用独立 Wine 前缀的进阶做法

文章后记提到可透过设置 WINEARCH=win64 和 WINEPREFIX=~/.wines 来建立独立的 Wine 环境,再执行 winecfg 进行配置,最后用 WINEPREFIX=~/.wines wine ./unit_test.exe 运行程序。这种方式能隔离不同应用的配置,避免相互干扰,适合需要特定 Windows 版本或组件的场景。但文章未详细说明其完整步骤,读者可依此方向进一步探索。

❓

Q&A

如何在Linux上安装Wine?

在终端输入以下命令:sudo dpkg --add-architecture i386,接着运行sudo apt update,最后使用sudo apt install wine wine32 wine64安装Wine。

执行MinGW编译的.exe文件需要哪些前置条件?

需要确保系统安装了mingw-w64工具链,并且Wine已成功安装。

如何通过终端执行一个.exe文件?

首先进入到.exe文件所在目录,然后使用命令wine your_program.exe执行该文件。

如果在运行.exe文件时遇到dll缺失问题,该如何解决?

可以通过设置环境变量来解决dll缺失问题,确保指定的toolchain路径正确。

如何验证Wine是否安装成功?

安装完成后,输入命令wine --version,如果安装成功,会显示已安装的Wine版本。

在Linux上使用Wine执行Windows程序的优势是什么?

Wine允许直接在Linux上运行Windows应用程序,无需虚拟机,节省资源并提高效率。

🏷️

标签

➡️

继续阅读