ubuntu下解决 ×.so.×: wrong ELF class: ELFCLASS64 的问题

     安装软件时出现问题  ×.so.×:wrong ELF class: ELFCLASS64,大致的意思是软件是32位的,需要32位的 ×.so.× 动态链接库,而系统是64位的所提供的该 动态链接库 ×.so.× 是64位的,所以不能用。

     这个问题网上也是各种找解决方案,却因为网上每个人安装的软件不同,所以解决方法也不同,这里给出自己的一种解决方式:

     首先可以查看自己的64位系统是否开启了32位支持功能,可以参考  http://linux.cn/article-2935-1.html

      1. 在终端输入 dpkg --print-architecture

          你将会看到像下面这样的内容:

           amd64

          这说明着你已经拥有了64位架构内核。

      2. 输入  dpkg --print-foreign-architectures

          输出是:

           i386

          说明已经打开多架构支持了,如果还没打开可以按下面操作

      3. sudo dpkg --add-architecture i386

           sudo apt -get update

           然后就会开始下载更新然后运行。

           之后你需要输入:

            sudo apt-get dist-upgrade

           它会检查你已经拥有的库文件是否有更新的版本。

           若果然有的话,它会问你是否需要更新(y/n)。

     如此这般,你就已经成功地为你的64位系统安装了32位支持了。

     既然软件需要32位的库,并且64位系统已经安装了32位支持了,那就安装32位的呗,可是,要注意的是在Ubuntu – Error网站上下到的32位deb包是不能安装成功的,总是会提示什么32位不能安装在64位系统之类的,所以要下载rpm包,地址:RPM Search

      1. 在上面的网站中搜索自己需要的×.so.×,然后选择i386的rpm包下载,注意要下载i386的

      2. 下载好后,不要转换成deb包,因为用alien命令是转换不成功的,直接双击rpm包,提取里面的文件夹

      3. 在提取出的文件夹中搜索自己需要的×.so.×,你需要的×.so.×可能是某个源文件xx的‘快捷方式’,把源文件xx复制到你自己的某个目录下

      4. 然后用命令 ln -s 某个目录/xx  /urs/lib/×.so.×,创建该源文件xx的‘快捷方式’到/usr/lib/目录下

我就是用这笨办法搞定的,十几个×.so.×都是这么弄的,虽然比较笨总算还是能运行了。

  • 6
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
根据您提供的引用内容,您遇到的问题是"error while loading shared libraries: libSM.so.6: wrong ELF class: ELFCLASS64"。这个错误通常是由于32位和64文件不匹配导致的。您可以尝试以下解决方法: 1. 确认您的系统是64位系统。您可以使用以下命令来检查: ```shell uname -m ``` 如果输出结果是"x86_64",则表示您的系统是64位系统。 2. 确认您的文件是64位的。您可以使用以下命令来检查: ```shell file /path/to/libSM.so.6 ``` 其中"/path/to/libSM.so.6"是您的libSM.so.6文件的路径。如果输出结果中包含"ELF 64-bit"字样,则表示您的文件是64位的。 3. 如果您的系统是64位系统,但文件是32位的,您可以尝试安装相应的32位文件。在Ubuntu系统中,您可以使用以下命令来安装32位文件: ```shell sudo apt-get install libsm6:i386 ``` 如果您使用的是其他Linux发行版,请根据相应的包管理器安装32位文件。 4. 如果您的系统是32位系统,但文件是64位的,您可以尝试安装相应的64文件。在Ubuntu系统中,您可以使用以下命令来安装64文件: ```shell sudo apt-get install libsm6:amd64 ``` 如果您使用的是其他Linux发行版,请根据相应的包管理器安装64文件。 5. 如果以上方法都无法解决问题,您可以尝试重新安装相关的软件包。首先,您可以尝试卸载已安装的软件包: ```shell sudo apt-get remove libsm6 ``` 然后,重新安装软件包: ```shell sudo apt-get install libsm6 ``` 请注意,以上方法仅适用于Ubuntu或其他基于Debian的Linux发行版。如果您使用的是其他Linux发行版,请根据相应的包管理器和软件包名称进行操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值