ImportError:错误的ELF类:ELFCLASS32

时间:2019-04-22 13:35:07

标签: python shared-libraries elf

我已经查看了所有建议的相关问题,但是似乎没有一个问题能解决我的问题。

我正在尝试在64位计算机上运行内部旧版程序。我尝试运行的程序是acmegui-64bit.so(也有acmegui.so),因此它表明该程序设计为在64位计算机上运行。当我运行它时,我得到

[tharpa@hpz44 bin]$ ./acmegui-64bit
:/dept/python32/lib:/usr/local/viz/notification/lib:/usr/lib
Traceback (most recent call last):
  File "/dept/adapt/acme/py/acmegui.py", line 8, in <module>
    import ACME, AcmeGui
  File "/dept/adapt/acme/py/AcmeGui.py", line 10, in <module>
    import AppShell, ACME, AcmeDialog, nwrSetup, nwwsSetup, nwrMaker, cwwsMaker, \
  File "/dept/adapt/acme/py/nwrMaker.py", line 18, in <module>
    import Config, Format, ACME, AcmeDialog, BusyTkDialog, nwrText, wxRoundup
  File "/dept/adapt/acme/py/nwrText.py", line 16, in <module>
    import ACME, Decoder, Config, Format, IdsDB, Product, Setup
  File "/dept/adapt/acme/py/Decoder.py", line 12, in <module>
    import ACME, Pils, Metar, SCD, SCP, WMOHeader
  File "/dept/adapt/acme/py/Metar.py", line 6, in <module>
    import ACME, acmedcd
ImportError: /dept/adapt/acme/py/Linux/acmedcdmodule.so: wrong ELF class: ELFCLASS32
[tharpa@hpz44 bin]$ ./acmegui-64bit

我已经考虑过将acmedcdmodule.so转换为64位的可能性。这可能吗?如果没有,那么重新创建它会有多困难?

1 个答案:

答案 0 :(得分:1)

  

我已经考虑过将acmedcdmodule.so转换为64位的可能性。这可能吗?

否。

  

如果没有,重新创建它会有多困难?

您将必须找到它的来源并重建它。如果原始程序可以作为开源程序使用,则可能不太困难。如果是开源的,则必须与原始开发人员联系。

在对此进行深入研究之前,应检查是否已经拥有acmedcdmodule.so(也许名为acmedcdmodule-64bit.so)的64位版本。如果这样做,修复此问题就像创建几个符号链接一样容易。