C语言 我如何在python中导入.so文件而不会导致%1不是有效的win32应用程序错误?



我一直在尝试将一些编译好的c代码包含到我的python代码中,如下所示:

from ctypes import CDLL
import os
absolute_path = os.path.dirname(os.path.abspath(__file__))
# imports the c library
test_lib_path = absolute_path + '/theories/test.so'
test = CDLL(test_lib_path)
.so文件是通过编译test.c文件(其中不包含任何代码)并执行以下命令创建的:
gcc -o theories/test.so -shared -fPIC -O2 test.c
我希望这会将编译后的代码加载到python程序中,以便我可以使用它,但是我得到了以下错误:
OSError: [WinError 193] %1 is not a valid Win32 application

据我所知,这意味着我编译的代码与我的操作系统不兼容,但我不知道哪里会出错(如果有帮助的话,使用VS 2022)。

应该是你的python版本是64位的,.so文件是32位的

先检查python版本

  1. 将python版本修改为与。so文件相同。
  2. 重新编译并生成与python版本一致的。so文件。

你可以试试

# 64bit
gcc -m64 
# 32bit 
gcc -m32

相关内容

  • 没有找到相关文章

最新更新