一个本地的库需要使用cmake编译后再利用make编译成dll文件。
cmake的使用在windows系统下安装make编译功能_windows安装make-CSDN博客
MinGW-w64下载地址:https://sourceforge.net/projects/mingw-w64/files/
i686纯32位版供32位win系统使用 x86_64是64位系统用的版本 seh结尾是纯64位编译 sjlj结尾是32 64两种编译,需加-m32或-m64参数 posix通常用于跨平台,比win32兼容性好一些。
由于我在运行时出现报错OSError: [WinError 193] %1 不是有效的 Win32 应用程序。-CSDN博客
发现是GCC版本错误,应当使用64位版本。报错函数:
def _load_c_functions(ref_point):
# filename = "lib" + ref_point + ".so" # |note|
filename = "lib" + ref_point + ".dll"
curr_dir, _ = os.path.split(os.path.realpath(__file__))
SHARED_LIB_PATH = os.path.join(curr_dir, "..", "c_functions", "build")
func = ctypes.CDLL(os.path.join(SHARED_LIB_PATH, filename))
注意这里.so是Lunix的共享库/动态库,Shared object,类似Windows的.dll或者mac的.dylib,用的时候只要用对应的后缀就可以了、
虚拟python环境可以用python-venv,也可以用更熟悉的conda环境,都一样。