我正在使用distutils,并且有一个模块spammodule.c可以编译,链接和完美地工作。
但是如果我将该模块重命名为.cpp并重新运行distutils构建/安装序列,则模块会构建但在python中导入时会出错:
ImportError:动态模块没有定义init函数(initspam)
CPP中的新模块是否有不同的格式而不是C?
答案 0 :(得分:6)
您需要将您的init函数包含在
中#ifdef __cplusplus
extern "C" {
#endif
//initspam goes here
#ifdef __cplusplus
}
#endif
以防止其名称被破坏。