欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 新车 > linux uos wine运行32位程序报错与解决方法

linux uos wine运行32位程序报错与解决方法

2024/10/24 12:21:55 来源:https://blog.csdn.net/weixin_38940097/article/details/141170331  浏览:    关键词:linux uos wine运行32位程序报错与解决方法

背景

手上有个项目,以前在window平台运行。现在需要适配linux uos 系统,由于项目是编译的32位。以前在适配另一个项目时,遇到过运行32位程序会报错,但是一直没找到根本问题。今天适配这个项目恰好研究下这个问题

研究过程

环境
  • 下载了wine 9.14 - i386 的版本

  • 新创建了一个容器

  • 然后使用wine 运行器运行(在个人的开发者电脑运行没问题)

问题描述

在开发环境电脑打包后,找了台干净的环境安装运行,安装后启动没反应。然后查看了容器日志:

0024:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.
0024:err:winediag:nodrv_CreateWindow L"Make sure that your X server is running and that $DISPLAY is set correctly."at MS.Win32.HwndWrapper..ctor(Int32 classStyle, Int32 style, Int32 exStyle, Int32 x, Int32 y, Int32 width, Int32 height, String name, IntPtr parent, HwndWrapperHook[] hooks)at System.Windows.Application.EnsureHwndSource()at System.Windows.Application.RunInternal(Window window)at System.Windows.Application.Run()at WjsPlatformAssistant.App.Main()

对上面的错误进行了分析,结果我个人电脑又是可以运行的。判断问题应该是环境问题。

随后在网上搜索了一圈,wine 开启i386的支持,还是不行…

最后发现命令行的顺序执行不对。

解决方法:

请确保先后顺序进行安装,安装后,重启下wine运行器,或者干脆重启下电脑。

  • Linux安装32位架构 dpkg --add-architecture i386

  • 更新源和安装wine32环境 apt-get update && apt-get install wine32

执行完上面命令后,把.deb软件卸载了重新安装后,正常运行!

总结:

1: wine版本要支持32位(在测试过程中发现wine8.0 版本支持32位,还有WOW版本的也是可以运行32位程序。但是我们软件需要依赖wine9.0以上的版本)。

2:在安装deb软件包的目标电脑linux要开启i386的支持!

为了解决和复现这个问题。我把个人开发者电脑系统都还原了… 都是泪!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com