在 UOS arm64 上编译 arm64 wine 7.0

@Ta 2022-01-25发布,2023-05-18修改 8194点击

前言

注意:这样编译出来的 arm64 wine 只能运行 arm64 exe,也就是说,它只能运行纯64位arm exe,不能运行32位arm、x86、x64以及arm64ec的exe,它也可能无法正常加载arm64x的exe。

如果你需要能同时运行64位arm软件和32位x86软件的wine,可以在arm64部分编译完成后,把--prefix文件夹复制到x86里,再编译一次32位wine,--prefix设为复制过来的文件夹,在make install之后,x86部分就会添加到文件夹里。不过为了启动这样的wine,还需要在Linux系统范围内安装x86 ELF binfmt处理程序(比如box86),安装arm64版wine游戏助手可以实现此目的(它会安装box86并将其注册为全局x86 ELF binfmt处理程序)。不过,这样的混合架构依然只能运行32位x86 exe和纯64位arm exe,无法运行32位arm、x64和arm64ec exe,可能也无法正常加载arm64x exe。


  1. 从github下载clang-13,并加到PATH里。
sudo apt install aria2
aria2c -x5 -s5 'https://github.com/llvm/llvm-project/releases/download/llvmorg-13.0.0/clang+llvm-13.0.0-aarch64-linux-gnu.tar.xz'
tar xf 'clang+llvm-13.0.0-aarch64-linux-gnu.tar.xz'
mv 'clang+llvm-13.0.0-aarch64-linux-gnu' 'clang-13'
export PATH="$PWD/clang-13/bin:$PATH"
  1. 通过apt安装依赖库。待完善。这一步是我很久以前做的,我还在找我的命令历史记录。
    方法很简单,就是sudo apt install 一堆包而已,只是包名很复杂,我是不断执行./configure然后根据缺库提示一个一个找到的。

  1. 下载wine-7.0源代码并构建。
aria2c -x5 -s5 https://dl.winehq.org/wine/source/7.0/wine-7.0.tar.xz
tar xf wine-7.0.tar.xz
cd wine-7.0
export CC='clang'
export CXX='clang++'
./configure --prefix="$HOME/winehq-devel-7.0-arm64"
make -j$(nproc)
make install

image.png

image.png

  1. 等编译好即可使用。注意第三步别忘了make install
export PATH="$HOME/winehq-devel-7.0-arm64/bin:$PATH"
rm -rf ~/.wine
wine --version
wine winecfg

image.png


编译好的二进制可以在这里下载:
winehq-devel-7.0-arm64.tar.xz(68.00 MB)

回复列表(4|隐藏机器人聊天)
添加新回复
回复需要登录