【发布时间】:2021-05-27 03:36:53
【问题描述】:
请原谅我的新手。几天来,我一直在尝试用 c 扩展 python。有很多方法,但没有一个是 Windows 友好的。目前我正在尝试遵循这个 SWIG 教程(页面底部)。https://en.wikibooks.org/wiki/Python_Programming/Extending_with_C#Using_SWIG
我已经到了应该将所有内容链接到 python 的最后一步,但是当我编写命令时
`gcc -shared hellomodule.o hello_wrap.o -o _hello.so -lpython`
我收到此错误 “c:/mingw/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: 不能查找 -lpython"
我试过了:
- 将 python 添加为环境变量
- 复制python地址到链接命令如下
gcc -shared hellomodule.o hello_wrap.o -o _hello.so -lC:\Users\LENOVO\AppData\Local\Programs\Python\Python38-32
任何帮助将不胜感激
【问题讨论】:
-
看起来您正在 (a) 将 32 位 python 与 64 位编译器混合,并且 (b) 未正确命名您的 Python 库,
C:\Users\LENOVO\AppData\Local\Programs\Python\Python38-32是否包含任何名为libpython.dll或 @987654326 的文件@ 或libpython.so?我不认为这是在 Windows 上的情况。他们通常在没有lib前缀的情况下命名他们的库。如果是这样,您需要提供库的完整路径,而不是任何-l标志(查看它的作用)。 -
@n.'pronouns'm。你是对的,好像我有 32 位 python 出于某种原因。我将重新安装 64 位的。但是我应该如何命名我的“python库”?
-
您需要提供库的完整路径
-
@n.'pronouns'm。有一个 python3.dll , python39.dll 和一个 lib 文件夹,其中包含许多其他文件夹和文件
-
@n.'pronouns'm。并且有一个dll库