我有一个用 python 编写的简单函数,我想将它移植到 javascript。
我已经将 python 2.7 编译成一个 .so 库,所以这不是问题。
我遇到的问题是,在我用 cython 编译程序后,函数名都被打乱了,这意味着我不知道在运行 emcc 时如何保留函数。
有人有使用 emscripten 将 python 程序编译为 js 的经验吗?
任何信息,将不胜感激。
注意:我想保留 python 的确切功能,我不想要将 python 程序转换为 javascript 的东西。
我有一个用 python 编写的简单函数,我想将它移植到 javascript。
我已经将 python 2.7 编译成一个 .so 库,所以这不是问题。
我遇到的问题是,在我用 cython 编译程序后,函数名都被打乱了,这意味着我不知道在运行 emcc 时如何保留函数。
有人有使用 emscripten 将 python 程序编译为 js 的经验吗?
任何信息,将不胜感激。
注意:我想保留 python 的确切功能,我不想要将 python 程序转换为 javascript 的东西。
另一个问题,有一个公认的答案,抱怨同样的问题:Cython mangling function names and making it hard to access from C++: Embed python function in C++
接受的答案表明 Cython 根本不适合这种事情,这表明你不能以这种方式做你想做的事:
您将无法以这种方式获得所需的互操作性。如果您打开并检查 hello.c,您将不会在其中的任何地方找到“static int say_hello”。Cython 旨在让 Python 使用 C 库,而不是让 C 库使用 python。
不接受的下一个答案表明指定public不会破坏函数名称,尽管他也提到了链接问题。
# (in the generated C file hello.c)
__PYX_EXTERN_C DL_IMPORT(...) say_hello(...);
值得一试,但如果失败,请考虑评论中的其他选项。