debian 11 arm64 aarch64 源码变异winehq arm64 笔记

这篇具有很好参考价值的文章主要介绍了debian 11 arm64 aarch64 源码变异winehq arm64 笔记。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

安装华为毕昇编译器

sudo apt install libc++1-13
 

编译tools

cd tools

su root

export PATH=/opt/bisheng-compiler-1.3.3-aarch64-linux/bin:$PATH

root@debian:/home/yeqiang/下载/src/wine/tools# ../configure CC=/opt/bisheng-compiler-1.3.3-aarch64-linux/bin/clang CXX=/opt/bisheng-compiler-1.3.3-aarch64-linux/bin/clang++ --host=aarch64-unknown-linux --without-x
 

部分configure 日志

configure: Wayland development files not found, the Wayland driver won't be supported.
configure: OpenCL development files not found, OpenCL won't be supported.
configure: pcap development files not found, wpcap won't be supported.
configure: libpcsclite not found, smart cards won't be supported.
configure: libdbus development files not found, no dynamic device support.
configure: libsane development files not found, scanners won't be supported.
configure: libusb-1.0 development files not found (or too old), USB devices won't be supported.
configure: libv4l2 development files not found.
configure: libgphoto2 development files not found, digital cameras won't be supported.
configure: libgphoto2_port development files not found, digital cameras won't be auto-detected.
configure: libpulse development files not found or too old, Pulse won't be supported.
configure: gstreamer-1.0 base plugins development files not found, GStreamer won't be supported.
configure: OSS sound system found but too old (OSSv4 needed), OSS won't be supported.
configure: libudev development files not found, plug and play won't be supported.
configure: libunwind development files not found, stack unwinding won't work.
configure: libSDL2 development files not found, SDL2 won't be supported.
configure: libcapi20 development files not found, ISDN won't be supported.
configure: libcups development files not found, CUPS won't be supported.
configure: fontconfig development files not found, fontconfig won't be supported.
configure: libkrb5 development files not found (or too old), Kerberos won't be supported.
configure: libnetapi not found, Samba NetAPI won't be supported.
configure: libvulkan and libMoltenVK development files not found, Vulkan won't be supported.

configure: WARNING: gettext tools not found (or too old), translations won't be built.

configure: WARNING: libgnutls development files not found, no schannel support.

configure: WARNING: No sound system was found. Windows applications will be silent.

configure: Finished.  Do 'make' to compile Wine.
 

安装依赖:

sudo apt install -y libwayland-dev  libpcap-dev libpcsclite-dev libdbus-1-dev libsane-dev libusb-1.0-0-dev libv4l-dev libgphoto2-dev  libpulse-dev libgstreamer-plugins-base1.0-dev oss-compat libudev-dev libunwind-dev libsdl2-dev libcapi20-dev libcups2-dev libfontconfig1-dev libkrb5-dev  libvulkan-dev 
sudo apt install mesa-opencl-icd

sudo apt install -y libgphoto2-dev

sudo apt install -y samba-dev

sudo apt install -y libvulkan-dev

sudo apt install -y gettext autopoint

编译tools

root@debian:/home/yeqiang/下载/src/wine/tools# ../configure CC=/opt/bisheng-compiler-1.3.3-aarch64-linux/bin/clang CXX=/opt/bisheng-compiler-1.3.3-aarch64-linux/bin/clang++ --host=aarch64-unknown-linux --without-x --without-freetype

debian 11 arm64 aarch64 源码变异winehq arm64 笔记,debian,linux,wine

# make  depend -j8
# make tools -j8

make -j8

编译报错

<inline asm>:11:2: error: unknown directive

debian 11 arm64 aarch64 源码变异winehq arm64 笔记,debian,linux,wine

资料

root@debian:/home/yeqiang/下载/src/wine/tools# clang -D__STDC__ -c -o dlls/ntdll/aarch64-windows/relay.o ../dlls/ntdll/relay.c -Idlls/ntdll -I../dlls/ntdll -Iinclude -I../include 

-I../include/msvcrt -D_MSVCR_VER=0 -D__WINESRC__ -D_NTSYSTEM_ -D_ACRTIMP= -DWINBASEAPI= 

-D__WINE_PE_BUILD -Wall --target=aarch64-windows-msvc -fuse-ld=lld -fno-strict-aliasing 

-Wdeclaration-after-statement -Wempty-body -Wignored-qualifiers -Winit-self -Wno-pragma-pack 

-Wno-microsoft-enum-forward-reference -Wstrict-prototypes -Wtype-limits -Wvla -Wwrite-strings 

-Wpointer-arith -Wabsolute-value -Wenum-conversion -g -O2
:11:2: error: unknown directive
.seh_save_fplr_x 16
^
:13:2: error: unknown directive
.seh_set_fp

正如之前所述,Clang 对于 Microsoft 的 Structured Exception Handling(SEH)语法支持有限,尤其对于 .seh_save_fplr_x 和 .seh_set_fp 这样的 Microsoft-specific inline assembly 指令并不支持。

为了成功编译 Wine 的源代码,特别是涉及 Windows 体系结构特有的异常处理的部分,你可能需要使用支持 SEH 的编译器,如 MinGW-w64 或者微软自家的 Visual C++ 编译器(对于非 Windows 平台,可能需要借助 Cross-Compiled 版本)。

对于 Wine 的交叉编译,官方推荐的做法通常是使用 Mingw-w64 工具链。请参考 Wine 的官方文档或社区讨论,了解如何正确设置 Mingw-w64 工具链来进行 Wine 的交叉编译。

如果你确实需要使用 Clang 并想探索能否使其支持 Windows 异常处理模型,你可能需要查找是否存在社区开发的补丁或扩展,或者考虑向 Clang 社区提出 feature request 或者参与开发。然而,目前 Clang 对 Windows SEH 的支持并不完善,因此这种方式可能面临较多挑战。

回到gcc

root@debian:/home/yeqiang/下载/src/wine/tools#  ../configure CC=/usr/bin/gcc CXX=/usr/bin/g++ --host=aarch64-linux-gnu --without-x --without-freetype

creating Makefile rules... done
configure: creating ./config.status
config.status: creating include/config.h
config.status: linking ../tools/winewrapper to wine
config.status: executing include/stamp-h commands
config.status: executing tools/makedep commands
config.status: executing Makefile commands

configure: Wayland development files not found, the Wayland driver won't be supported.
configure: OpenCL development files not found, OpenCL won't be supported.
configure: OSS sound system found but too old (OSSv4 needed), OSS won't be supported.

configure: WARNING: libgnutls development files not found, no schannel support.

configure: Finished.  Do 'make' to compile Wine.
 

AI

我在debian 11 aarch64架构系统上,CPU是arm64架构。我期望使用wine启动一个x86 或者x86_64的windows 应用程序。是否可行?

debian 11 arm64 aarch64 源码变异winehq arm64 笔记,debian,linux,wine

在 Debian 11 aarch64 架构系统上直接运行 x86 或 x86_64 架构的 Windows 应用程序是不可行的,因为 CPU 架构之间存在不兼容性。aarch64(ARM64)架构的处理器不支持直接执行 x86 或 x86_64 架构的机器指令。

Wine 通常用于在 Linux 上运行原生为 x86 或 x86_64 架构编译的 Windows 应用程序,但它依赖于底层 CPU 架构的兼容性。对于 aarch64 架构,Wine 必须通过某种形式的二进制转换或模拟技术来支持运行 x86/x86_64 应用程序,而这种支持的程度取决于 Wine 的开发进度和实现细节。

目前,Wine 对于 aarch64 架构的支持尚在发展中,而且支持度和性能表现可能不及 x86 和 x86_64 架构。在 WineHQ 官方网站上可以查询到最新的支持状态和兼容性报告。

尽管如此,有一些项目(如 Box64、ExaGear Desktop)致力于提供 x86 仿真环境,允许在 ARM 架构上运行 x86 应用程序,但这通常需要更多的配置和优化,并且性能和兼容性都有局限性。同时,这些项目与 Wine 本身是相互独立的,需要单独安装和配置。

放弃wine研究,转向Box64

ExaGear Desktop文章来源地址https://www.toymoban.com/news/detail-795078.html

到了这里,关于debian 11 arm64 aarch64 源码变异winehq arm64 笔记的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • pytorch-v2.0.1 cuda arm64 aarch64 torch 2.0.1+cu118 源码编译笔记【2】验证cuda安装 成功

    接上篇 pytorch-v2.0.1 cuda arm64 aarch64 torch 2.0.1+cu118 源码编译笔记_hkNaruto的博客-CSDN博客 由于采用/usr/local/bin/gcc编译,先设置LD_LIBRARY_PATH,再启动python3 import torch报错 # /usr/local/Python-3.10.12/bin/python3 Python 3.10.12 (main, Sep  4 2023, 10:01:29) [GCC 9.2.0] on linux Type \\\"help\\\", \\\"copyright\\\", \\\"credits\\\" or \\\"l

    2024年02月09日
    浏览(44)
  • Windows11 上使用 QEMU 创建 Ubuntu aarch64(ARM64)虚拟机

    最近在实现一个混沌测试工具,对汽车上分布式系统执行测试。计划运行在 Linux aarch64 环境,需要确定在目标环境能不能运行,但自己和实验室的电脑都是 x86_64,所以打算建一个虚拟机。 通过 Docker容器或VMware都不支持在 x86_64 宿主机运行 aarch64 容器/虚拟机, Virtual Box 似乎也

    2024年02月03日
    浏览(49)
  • UEFI源码学习01-ARM AARCH64编译、ArmPlatformPriPeiCore(SEC)

    编译完之后会生成UEFI文件: Build/ArmVirtQemu-AARCH64/DEBUG_GCC5/FV/QEMU_EFI.fd 运行命令如下 大部分教程都是用OVMF来做示例,OVMF中第一个运行的UEFI模块是SEC。但AARCH64中的SEC是这个ArmPlatformPriPeiCore。所以在edk2的AARCH64示例中,ArmPlatformPriPeiCore是第一个运行的模块。 我们用UEFITool NE 打开

    2023年04月08日
    浏览(39)
  • aarch64 arm64 部署 stable diffusion webui 笔记 【1】准备 venv 安装pytorch 验证cuda

    aarch64 pytorch(没有aarch64对应版本,自行编译) pytorch-v2.0.1 cuda arm64 aarch64 torch 2.0.1+cu118 源码编译笔记【2】验证cuda安装 成功_hkNaruto的博客-CSDN博客 [root@ceph3 stable-diffusion-webui]# /usr/local/Python-3.10.12/bin/python3 -m venv venv [root@ceph3 stable-diffusion-webui]# source venv/bin/activate (venv)[root@ceph3 stab

    2024年02月07日
    浏览(46)
  • 在Linux、Ubuntu中跨平台编译ARM(AARCH64)平台的binutils

    Binutils 是GNU(https://www.gnu.org/)提供的一组二进制工具的集合。通常,在已经安装了Linux操作系统的个人电脑上,系统就已经自带了这个工具集。但在进行嵌入式开发的时候,可能会用到支持ARM64平台的Binutils,这时就需要用到交叉编译。 此前,在【1】我们已经介绍过Ubuntu中交

    2024年02月05日
    浏览(80)
  • Linux 利用 qemu-system-aarch64 实现 x86 机器安装 arm64 的操作系统

    qemu-system-aarch64 启动的虚拟机,无法受到 kvm 的管理,也无法在后台运行 终端一旦断开了,虚拟机就被关掉了,想再次进入目前没找到方法,都会回到安装操作系统的步骤 可能是 centos 有某些特殊性吧,暂时没太多时间研究,后期有时间了再看看有没有解决的方案 qemu-5.2.0 和

    2024年02月06日
    浏览(53)
  • 飞腾 kylin-server v10 arm64 aarch64 anaconda3 conda 非法指令 Illegal instruction 笔记

    原因: chenghlee  commented on Jun 15, 2021 It\\\'s likely related to the compiler options used to build the linux-aarch64 packages on defaults; basically, Anaconda uses options that target the server-class Neoverse N1/N2 microarchitecture, rather than the application-class Cortex-A* CPUs. Some thought that needs to be put into the  linux-aarch64  and ho

    2024年02月09日
    浏览(60)
  • arm64和aarch64之间的区别

    直接给出结论:arm64已经与aarch64合并,因为aarch64和arm64指的是同一件事。 AArch64是ARMv8 架构的一种执行状态。 为了更广泛地向企业领域推进,需要引入 64 位构架。同时也需要在 ARMv8 架构中引入新的 AArch64 执行状态。AArch64 不是一个单纯的 32 位 ARM 构架扩展,而是 ARMv8 内全新

    2024年02月11日
    浏览(33)
  • arm/aarch64架构安装conda环境

    首先找到一个下载conda的地址 清华源anaconda地址 可以看到conda在不同系统环境下有如下版本 鉴别不同国产系统可参考:国产的开源操作系统都有哪些? 这里用阿里arm/aarch64架构 所以下载连接为 https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2023.03-Linux-aarch64.sh 可以手动下载上

    2024年02月14日
    浏览(40)
  • 服务器基础知识:aarch64 arm64 arm x86有什么区别

    aarch64 和 arm64 是指基于ARM架构的64位处理器,而 arm 是指基于ARM架构的32位处理器。 x86 则是指基于x86架构的处理器。 架构: aarch64 、 arm64 和 arm 都属于ARM架构,而 x86 属于x86架构。 位数: aarch64 和 arm64 是64位处理器架构,能够使用64位的寄存器和指令集。 arm 是32位处理器架构

    2024年02月08日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包