V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
devzero
V2EX  ›  C

求助: libc.so: invalid ELF header

  •  
  •   devzero · 2017-04-20 21:31:56 +08:00 · 1641 次点击
    这是一个创建于 2807 天前的主题,其中的信息可能已经有所发展或是发生改变。

    不知道放在这个节点合适不合适
    是这样的, liba.so 是一个 c++写的库,我没有源码
    在之前运行的时候发现机器上没有 libstdc++.so
    于是从 Debian 官网下了一个 deb 包,解开来放到 /usr/lib 里面了
    之后用 Python 调用的时候出现这样的情况

    root@vultr:~# objdump -f liba.so 
    liba.so:     file format elf32-i386
    architecture: i386, flags 0x00000150:
    HAS_SYMS, DYNAMIC, D_PAGED
    start address 0x00000000
     
    root@vultr:~# uname -a
    Linux vultr.guest 4.10.0-041000-generic #201702191831 SMP Sun Feb 19 23:44:17 UTC 2017 i686 GNU/Linux
    
    root@vultr:~# python3
    Python 3.4.2 (default, Oct  8 2014, 13:14:40)
    [GCC 4.9.1] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> from ctypes import *
    >>> a = CDLL('./liba.so')
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "/usr/lib/python3.4/ctypes/__init__.py", line 351, in __init__
        self._handle = _dlopen(self._name, mode)
    OSError: /usr/lib/i386-linux-gnu/libc.so: invalid ELF header
    

    完全不知道是什么情况,感觉是库的锅,搜索“ libc.so: invalid ELF header ”也没找到解决方法,求解

    pagxir
        1
    pagxir  
       2017-04-20 22:36:33 +08:00
    先搞清楚机器 arch 再说。这么瞎弄,搞不出结果的。
    xbb7766
        2
    xbb7766  
       2017-04-20 22:38:18 +08:00
    是不是一个 i386 一个 i686 的关系?
    我记得 debian 的 32bit 内核也分好几个版本。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2751 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 13:13 · PVG 21:13 · LAX 05:13 · JFK 08:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.