zoukankan      html  css  js  c++  java
  • 在WSL中运行32位程序

    今天发现在WSL中运行32位程序hmetis会报错:

    -bash: ./hmetis: cannot execute binary file: Exec format error

    用file hmetis命令查看文件信息:

    hmetis: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.0.0, stripped

     

    经过查找,发现github上@Froosh给出了他的解决方案,通过安装qemu来运行32位的程序:https://github.com/Microsoft/WSL/issues/2468

    1. 首先安装qemu and binfmt

    sudo apt update
    sudo apt install qemu-user-static
    sudo update-binfmts --install i386 /usr/bin/qemu-i386-static --magic 'x7fELFx01x01x01x03x00x00x00x00x00x00x00x00x03x00x03x00x01x00x00x00' --mask 'xffxffxffxffxffxffxffxfcxffxffxffxffxffxffxffxffxf8xffxffxffxffxffxffxff'

    每次重新启动WSL并希望i386支持时,您都需要重新激活此功能:

    sudo service binfmt-support start

    2. 接下来启用i386体系结构和package

    sudo dpkg --add-architecture i386
    sudo apt update
    sudo apt install cpp-9:i386
    sudo apt install gcc:i386

    至此,就可以运行之前的32位binary了。

    3. 设置开机启动

    vim /etc/myinit.sh
    sudo service binfmt-support start

     

    参考:https://www.cnblogs.com/TatuCz/p/10330820.html

    ------------------------------------------------------------------------- 花有重开日,人无再少年
  • 相关阅读:
    django模型层(二)多表操作
    django模型层(一)单表操作
    模板系统
    HTTP协议web开发知识点
    视图函数
    URL路由系统
    web框架的本质
    MySQL多表查询
    MySQL单标查询
    列表渲染
  • 原文地址:https://www.cnblogs.com/lbz007oi/p/14314063.html
Copyright © 2011-2022 走看看