Python C 绑定 Py_InitModule 问题

0 投票
1 回答
1722 浏览
提问于 2025-04-16 23:58

我最近的编程项目让我尝试了一些之前没接触过的东西,主要是我开始认真学习C语言编程。Stack Overflow上的用户们一直非常乐于助人,所以我又来请教你们了。我想为Python写一些C语言的绑定函数(用SDL在屏幕上绘制像素),但我又遇到了编译器的错误。

这一行:

Py_InitModule3("ezpix", ezpix_methods, "ezpix extension");

给我带来了这个错误:

POLINK: error: Unresolved external symbol '_Py_InitModule3'.
POLINK: fatal error: 1 unresolved external(s).

我觉得很奇怪,为什么它提到的是_Py_InitModule3,而我写的是Py_InitModule3,是不是语法解析器加了个下划线什么的?我在Windows上使用Pelles C,其他代码(包括那些看起来更复杂的部分)都编译得很好。

1 个回答

1

这是一个函数的复杂名字,但在库里找不到,因为它是来自 modsupport.h 的一个宏。

#define Py_InitModule3(name, methods, doc) \
    Py_InitModule4(name, methods, doc, (PyObject *)NULL, \
                   PYTHON_API_VERSION)

modsupport.h 文件是通过 Python.h 被包含进来的。

撰写回答