你好,我的代码在Windows上运行得很好:
import ctypes
import sys
import os
from ctypes import *
from numpy import *
import time
from ctypes.util import find_library
libEDK = cdll.LoadLibrary("edk.dll")
我试着在Ubuntu上运行这个程序,我了解到:
Traceback (most recent call last):
File "/home/nassar/Downloads/python/sds.py", line 9, in <module>
libEDK = cdll.LoadLibrary("/home/nassar/Desktop/python/edk.dll")
File "/usr/lib/python2.7/ctypes/__init__.py", line 443, in LoadLibrary
return self._dlltype(name)
File "/usr/lib/python2.7/ctypes/__init__.py", line 365, in __init__
self._handle = _dlopen(self._name, mode)
OSError: /home/nassar/Desktop/python/edk.dll: invalid ELF header
发布于 2013-12-24 13:55:44
呃..。你不能那样做;
共享库依赖于操作系统,因此为windows构建的库不可能在linux中工作,而visa反过来也不能工作。
不过,您可能会对葡萄酒有一些了解,因为它是一个跨许多平台工作的Windows运行时。当然,我在葡萄酒中运行Python二进制文件也取得了一些成功。
发布于 2013-12-24 13:53:52
在Linux上,我们有一个叫做shared object
(.so)的东西,而不是DLL的。
长话短说:您不能在Linux系统上加载Windows。您需要编译一个Linux共享库("edk.so")。
https://stackoverflow.com/questions/20762142
复制相似问题