首页 > 编程语言 >在WSL2里运行32位程序

在WSL2里运行32位程序

时间:2022-12-29 16:48:24浏览次数:57  
标签:set 32 程序 wsl WSL usr WSL2 debian

以Debian root用户为例。请先看如下程序:

#include <stdlib.h>
#include <stdio.h>
int main() {
  printf("%d ", sizeof(int));
  printf("%d ", sizeof(long));
  printf("%d ", sizeof(void*));
  printf("%d\n", atoi("3"));
  return 0;
}

用gcc编译,输出结果是4 8 8 3,我还以为64位系统下sizeof(int)是8呢。用gcc -m32编译,首先编译时报找不到某个头文件,解决方法是:apt-get install gcc-multilib

然后运行时出错:

bash: ./a.out: cannot execute binary file: Exec format error

解决方法是:

  • WSL不支持,需要升级到WSL2(方法在后面)
  • Linux里dpkg --add-architecture i386; apt-get update

WSL升级已有Linux到WSL2的方法:

管理员身份运行cmd

wsl -l -v
  NAME      STATE           VERSION
* debian    Running         1

如果在 wsl --install 命令可用之前手动安装了 WSL,则可能还需要启用 WSL 2 所使用的虚拟机可选组件并安装内核包(如果尚未这样做)。

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

看 https://learn.microsoft.com/zh-cn/windows/wsl/install
下载 https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi 并安装、重启

wsl --set-version debian 2 转换现有的debian需要几分钟时间
wsl --set-default-version 2 为以后安装的设置默认值
C:\Windows\system32>wsl -l -v NAME STATE VERSION * debian Running 2

然后D:\debian下从WSL的一大堆文件变成了只有ext4.vhdx和fsserver两个文件。我不后悔:-),毕竟不用装VirtualBox了嘛。但是用set-version换回1是我的权利:-)。而且在Linux下:

# 可通过/mnt目录访问Windows的文件
cp /mnt/c/windows/explorer.exe /usr/local/bin/explorer
explorer . # 可在资源管理器里打开当前目录(.)
echo $PATH
.:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games # Linux默认不在.下面找,.是我自己加进去的

设置nano的tab size ~/.vimrc [为啥我记得注释用'打头,现在是"了]: 

syntax on
set noek
set ts=4
set sw=4
"/usr/share/vim/vim82/colors
color industry

Windows 11 安装 WSL2 并ssh远程连接 | WSL2 与 Win10 固定host互相访问 | 通过局域网访问 Windows 10 WSL 2 的网络服务

标签:set,32,程序,wsl,WSL,usr,WSL2,debian
From: https://www.cnblogs.com/funwithwords/p/17012933.html

相关文章

  • 第二章《Java程序世界初探》第10节:多重if...else语句
    ​程序员希望实现这样的功能:由用户从控制台输入一个考试分数,如果这个分数在90或90以上输出“优”,如果分数在70到89输出“良”,如果分数在60到69输出“平”,如果分数在60以......
  • windows 启动exe程序前注入dll(c++)
    //需要的头文件:#include<iostream>#include<stdarg.h>#include<Windows.h>#include<Psapi.h>#include<stdint.h>#include<tlhelp32.h>#include<imagehlp.h>#pragmac......
  • windows 10 桌面ctrl alt 自定义快捷键打开程序慢 响应很慢 延迟问题
    思路为:关闭后台应用具体步骤如下:1.)设置,搜索 隐私  2.)找到隐私设置  3.)关闭后台这些后台应用,我都不需要,所以直接全部关闭了,如果有需要可以逐个实验,查找出来到底是哪个后......
  • 如何快速高效简洁的打开软件 干净利索的windows快捷程序启动器
    windows平台上,如何快速高效的打开一个应用?本文提供了一种高效简洁的方式供您选择本文的主题是如何高效快捷的打开你想要打开的软件本文介绍的应该是......
  • 第一个Mybatis程序示例 Mybatis简介(一)
    一步一步搭建Mybatis的使用示例,项目中可能只是编写接口与XML映射文件,本文根据官方文档从底层描述一个完整示例,并对Mybatis进行了一个简单的介绍,作为入门......
  • C# 程序设计教程 基础
    一.单选题:1.C#语言是由美国的哪一个公司发明的?A.谷歌  B.微软 C.IBM   D.Oracle2.C#语言是一种类型安全的、现代的、简单的,由C和C++衍生出来的      ......
  • 《非程序员》电子杂志下载(1-22期)
    在2001-2005年间发布的免费电子杂志《非程序员》,杂志从“软件以用为本”出发,重点关注软件需求和设计技能。杂志发行到51期后停刊。许多内容到今天依然有参考价值。全51期-百......
  • 《非程序员》电子杂志下载(1-14期)
    在2001-2005年间发布的免费电子杂志《非程序员》,杂志从“软件以用为本”出发,重点关注软件需求和设计技能。杂志发行到51期后停刊。许多内容到今天依然有参考价值。全51期-百......
  • 《非程序员》电子杂志下载(1)
    在2001-2005年间发布的免费电子杂志《非程序员》,杂志从“软件以用为本”出发,重点关注软件需求和设计技能。杂志发行到51期后停刊。许多内容到今天依然有参考价值。全51期-百......
  • 使用 Spring Boot 和 Kotlin 构建 Web 应用程序
    本教程向您展示如何通过结合弹簧启动和科特林.如果您从Kotlin开始,您可以通过阅读参考文档,跟随在线KotlinKoans教程或只是使用Spring框架参考文档现在在Kotlin中提供......