提问人:Bamboozlement 提问时间:7/4/2023 最后编辑:Bamboozlement 更新时间:7/6/2023 访问量:43
尝试使用 setuptools 安装 python 绑定时如何解决链接器错误?
How to resolve linker errors when trying to install python bindings with setuptools?
问:
我目前正在尝试在 Rust (https://github.com/bet4it/udbserver) 中为项目构建安装 python 绑定。构建项目本身工作正常,我得到一个 .dll、.h 和 .lib 文件。由于我在 Windows 上,我不能将它们分别放入 usr\bin - usr\include - usr\lib 中,而是将 .lib 和 .h 文件的路径包含在 include 和 library 目录中,这些目录可以在 python setuptools 中指定,项目使用它来生成 python 绑定。当我尝试执行安装程序python文件时,我收到如下所示的链接器错误:
"udbserver.obj : error LNK2001: unresolved external symbol __imp__PyObject_GetAttr
udbserver.obj : error LNK2001: unresolved external symbol __imp__Py_NoneStruct
udbserver.obj : error LNK2001: unresolved external symbol __imp__Py_Initialize
udbserver.obj : error LNK2001: unresolved external symbol __imp__PyModule_Create2
udbserver.obj : error LNK2001: unresolved external symbol _udbserver
udbserver.obj : error LNK2001: unresolved external symbol __imp__PyLong_AsVoidPtr
udbserver.obj : error LNK2001: unresolved external symbol __imp__PyUnicode_FromString
udbserver.obj : error LNK2001: unresolved external symbol __imp__PyArg_ParseTuple
build\lib.win32-cpython-311\udbserver.cp311-win_amd64.pyd : fatal error LNK1120: 8 unresolved externals"
我以为库和包含目录中可能缺少 Python include 和 library 文件,但在执行设置时,它显示 python\lib 和 python 文件夹包含在库路径中,python\include 和 python\Include 包含在包含路径中。所以我有点困惑为什么会发生这种情况。
我还有什么其他选择?尝试自己创建绑定?
编辑:通过使用 32 位 Python,我能够消除所有链接器错误,但只有一个错误。这就是提到的未解决的外部“_udbserver”。仍然不确定这个。
答: 暂无答案
下一个:G++ 链接器以静默方式忽略库
评论