为什么在Python中导入.so文件时出现小端错误
我正在尝试使用一个叫做PySndObj的C++扩展来为Python服务,但遇到了一个我从未见过的错误,而且在网上找不到任何相关信息 :(
错误信息是:ImportError: /home/nhnifong/SndObj-2.6.6/python/_sndobj.so: ELF文件数据编码不是小端格式
我知道这可能意味着字节顺序是反的,所以我尝试写了一个小脚本,每次读取文件的2个字节,并交换它们的顺序,然后再写回去。但结果没有成功。
有没有人知道该怎么做?
1 个回答
4
你需要自己从源代码构建这个扩展。
你尝试“反转字节”的做法很勇敢,但其实只有ELF文件的某些部分是以字为单位的数据,而不是以字节为单位的。
而且,这个dll文件很可能不是为你系统的CPU架构编译的。