我需要编译我的c扩展,可以在kodi中通过python调用。任何人都可以列出所涉及的步骤。我想我实际上已经交叉编译了c扩展,但它不适用于kodi。
答案 0 :(得分:0)
很抱歉,我无法为您提供具体步骤,但据我所知,为Kodi-Android构建二进制模块并非易事。这就是我所知道的:
Python.h
。libkodi.so
以找到必要的Python符号。如果您使用:
import foo
Kodi-Android实际上会搜索libfoo.so
,因为当搜索共享库文件并导入失败时,它会自动附加lib-
。简单地将foo.so
重命名为libfoo.so
不会有帮助,因为名称必须与模块声明匹配,例如:
PyMODINIT_FUNC
initspam(void)
{
(void) Py_InitModule("libfoo", SpamMethods);
}
仅当模块声明"libfoo"
与文件名libfoo.so
匹配时(" lib - "部分对于Kodi-Android是必需的),如果没有,则导入应该成功其他陷阱。正如我所说,这不是一项微不足道的任务。
UPD :我忘记了许可问题。 Android不允许从任何地方导入二进制模块。已知Kodi的临时目录可以工作,但并非总是如此。同样,就二进制Python模块而言,Kodi-Android总是一团糟。