WSL 2 真的支持 32 位程序吗?

2023-12-15

我用谷歌搜索了这个问题,一些答案声明 WSL 2 现在支持 ELF 32 程序。

然而,在wsl2 Debian/Ubuntu发行版上的简单测试没有通过。

这是我的测试:

// install run-time
sudo dpkg --add-architecture i386
sudo apt-get update
// install build tools
sudo apt install build-essential
sudo apt install gcc-multilib
// build
gcc helloworld.c  -m32
// run!
./a.out
bash: ./a.out: cannot execute binary file: Exec format error

refers:

https://stackoverflow.com/questions/42120938/exec-format-error-32-bit-executable-windows-subsystem-for-linux
https://superuser.com/questions/1407730/run-32-bit-application-on-ubuntu-on-windows-subsystem-for-linux/1407818#1407818

如果您运行命令uname -a在 WSL 中,您应该得到包含 WSL 版本的结果。这应该是这样的Linux COMPUTER_NAME 4.4.0-18362-Microsoft ...。该输出中的数字 18362 是您的 WSL 版本,并且它需要至少为 19041 才能成为 WSL2 版本(仅 WSL2 支持 32 位应用程序)。

你也可以运行wsl --list --verbose在 CMD shell 中,您将看到 WSL 实例的版本是1.

WSL2 将成为本月晚些时候 Windows 更新的一部分

WSL2 将于 2020 年 5 月 12 日作为 Windows 10 2004 的一部分发布。如果您不想等待,可以通过“Windows Insider 计划”注册预览版本。

立即通过 Windows Insider 计划获取 WSL2(大约需要 1 小时):

  • 在 Windows 中,转到Settings -> Windows 预览体验计划并注册该计划。然后去检查更新。下载需要一段时间,然后按照提示进行所有所需的重新启动等操作。

  • 确保“虚拟机平台”已启用打开或关闭 Windows 功能

  • 在 CMD 或 powershell 中运行wsl --set-default-version 2使所有未来的 WSL 安装都使用 WSL2
  • run wsl --set-version <Distro> 2 to change an already installed instance to WSL2
    • 这将需要一个LONG时间。在网上看到这可能需要几个小时后我放弃了。相反,我卸载了 Ubuntu 并重新安装了它。这花了大约 10 分钟。只要设置默认为WSL2,重新安装就会是WSL2。
  • 您可以通过运行来验证您的 WSL 现在是版本 2wsl --list --verbose
  • 您的 32 位二进制文​​件现在应该可以工作了

我在过去一个小时内完成了所有这些工作,因为我需要运行今天早上构建的 Zephyr 模拟二进制文件。它成功了,我很高兴:)

Sources:

Github 问题 - 滚动到末尾

安装 WSL2

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WSL 2 真的支持 32 位程序吗? 的相关文章

随机推荐

  • 遵循 Django 教程时出现“导入错误:没有名为 urls 的模块”

    我正在关注 django 官方教程https docs djangoproject com en 1 10 intro tutorial04 我正在使用 Django 1 9 8 现在出现以下错误 polls views py File C
  • 使用 Sequelize 将对象传递到钩子中

    我正在使用 Sequelize 作为我的节点应用程序的数据库 SQL Server 交互工具 我想创建一个在表有更新 交互时运行的钩子 为了解决这个问题 我将将此表称为 用户 我选择使用的钩子是 Sequelize 的 afterBulkU
  • 为什么匿名对象有时需要默认构造函数?

    如果我编写以下程序 它会按我的预期工作 struct Foo Foo std string x std cout lt lt x lt lt std endl int main Foo hello world 但是 如果我编写一个稍微不同的
  • 当将 Ruby 数组作为参数传递时,为什么会附加 `<<` 而 `+=` 则不会?

    当将数组传递给函数时 我遇到了意外的结果以及 lt lt vs 谁能解释为什么以下两个程序有不同的输出 def build results result 1 2 3 each value concat to array value resu
  • 向用户发送私人消息

    我正在使用discord js 库和node js 创建一个促进扑克的Discord 机器人 除了向所有人展示手牌之外 它是有效的 我需要循环遍历玩家并向他们发送手牌的 DM bot on message message gt messag
  • 如何首先在代码中使用迁移添加计算列?

    我已在我的数据模型中添加了这个计算列 DatabaseGenerated DatabaseGeneratedOption Computed public string FullName get private set 之后我使用此查询在数据
  • Java GSS-API 服务票证未使用 Java 保存在凭证缓存中

    我使用 GSS API 创建了 2 个演示 Kerberos 客户端 第一个是Python3 第二个是Java 两个客户端似乎大致相同 并且都 工作 因为我获得了我的 Java GSS API 服务主体接受的服务票证 然而 在测试中我注意到
  • django - get() 返回多个主题

    当我尝试将一个属性与另一个具有M to M我收到此错误的关系 get 返回了多个主题 它返回了 2 个 你们能告诉我这意味着什么 或者提前告诉我如何避免这个错误吗 models class LearningObjective models
  • Ruby 的 printf 参数是什么意思?

    有人可以帮我理解下面的表达吗 printf 3d s n counter name 该行打印出类似这样的内容6 Install Adobe software 我查阅了信息并阅读了参考文献 但找不到简单的答案 我有点困惑 如果您能给我推荐一个
  • 在 python 中使用 h5py 读取或写入复合数据类型

    我想在一些 C matlab 和 python 代码中使用 hdf5 文件 我的 h5 文件在 C 和 matlab 中运行良好 但无法用 h5py 读取 h5py 不太支持像 H5T STD B64LE 这样的数据类型吗 谢谢 In 2
  • 如何将核心动画块内的一段代码排除在动画之外?

    我有一个核心动画块 我在其中调用一个将加载视图控制器的方法 两个视图控制器之间发生自定义转换 然而 当视图控制器构建界面时 所有这些东西都会受到核心动画的影响 虽然它会产生一些有趣的效果 但我不希望这样 UIView beginAnimat
  • 在MongoDB中,如果一个索引有3个字段,那么我们在查询2个字段时可以使用该索引吗? (第三个字段的通配符)

    如果有一个索引 page type our id date 并且在查询时 db analytics find page type ingredients ga date gte new Date Wed Sep 08 2010 12 00
  • 如何在 .NET 运行时将文件夹添加到程序集搜索路径?

    我的 DLL 是由第三方应用程序加载的 我们无法对其进行自定义 我的程序集必须位于它们自己的文件夹中 我无法将它们放入 GAC 我的应用程序需要使用 XCOPY 进行部署 当根 DLL 尝试从另一个 DLL 同一文件夹中 加载资源或类型时
  • “倒置”边界半径可能吗? [复制]

    这个问题在这里已经有答案了 当我想到为我的链接制作选项卡 或选项卡 时 我正在研究我的网站的 CSS 我在这个例子中删除了文本 但这基本上是一个导航栏 这是图片 我的问题是 如何获得黑色箭头指向的 边框半径 效果 并且看起来像蓝色箭头指向的
  • 隐藏列时删除空格

    我在用贾斯珀报告 4 5 0生成报告 我正在生成不同格式的报告 如 html csv pdf xls doc 在我的一份报告中 我有 6 栏说第 1 列 第 2 列 第 3 列 第 4 列 第 5 列 第 6 列 但根据我想隐藏的条件col
  • 关闭 Sql Server/T-SQL 中的日志记录

    我需要关闭 Sql Server T SQL 中的日志记录才能写入 as400 中的文件 表 我发现你可以在 SQLite 中使用 Pragma 来做到这一点 然而 我发现T SQL 中不存在这种情况 有任何想法吗 Thanks 您需要禁用
  • 如何在 ios 中将 y-planar、u-planar 和 uv-planar 与 yuv bi planar 分开?

    在应用程序中我使用了 AVCaptureVideo 我得到了 kCVPixelFormatType 420YpCbCr8BiPlanarFullRange 格式的视频 现在我从图像缓冲区获取 y 平面和 uv 平面 CVPlanarPixe
  • 将位图转换为 WebP 图像?

    谁知道是否可以转换Bitmap to a WebP图像使用C 一直在 Google 搜索 但找不到 C 的任何内容 我找到了这个 mc kay libwebp sharp GitHub但它似乎没有将位图转换为WebP format 有任何想
  • 创建可重用的 jQuery 函数

    我没有每次都重新编写大量代码 而是尝试将函数合并到我的工作中 但我在使其工作时遇到了困难 基本上 我有一些单选按钮的选择 每次单击单选按钮时我都会执行一些操作 我实际上正在加载 iFrame 但是 我需要使每个单选按钮的 iFrame SR
  • WSL 2 真的支持 32 位程序吗?

    我用谷歌搜索了这个问题 一些答案声明 WSL 2 现在支持 ELF 32 程序 然而 在wsl2 Debian Ubuntu发行版上的简单测试没有通过 这是我的测试 install run time sudo dpkg add archit