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

原文链接http://blog.csdn.net/mifangdebaise/article/details/44942395

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

     这个问题真是郁闷了我一天,网上也是各种找解决方案,却因为网上每个人安装的软件不同,所以各种说明,可能因为我自己太水了,对linux也是一知半解,网上的解决方案不是看不懂就是不管用,最后我都想换成32位系统了,转念一想为了一个软件换系统台不划算,干脆自己再搞搞,结果还真弄出来了,不说废话了。。。

     首先可以查看自己的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位的呗,可是,要注意的是在http://packages.ubuntu.com/trusty/devel/网站上下到的32位deb包是不能安装成功的,总是会提示什么32位不能安装在64位系统之类的,所以要下载rpm包,地址:http://rpm.pbone.net/

      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.×都是这么弄的,虽然比较笨总算还是能运行了。


  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据您提供的引用内容,您遇到的问题是"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发行版,请根据相应的包管理器和软件包名称进行操作。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值