Python C 绑定 Py_InitModule 问题
我最近的编程项目让我尝试了一些之前没接触过的东西,主要是我开始认真学习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 被包含进来的。