我正在尝试使用 cython 和 emscripten 从 python 生成 javascript。
hello.py
:
print 'Hello world.'
然后我使用 cython 将其编译为 c
>>> cython --embed hello.py -v
这会生成一个hello.c
我用来编译的文件
>>> gcc hello.c -I/usr/include/python2.7/ -lpython2.7
这适用于 gcc 或 clang。当我执行时,./a.out
我得到了预期的输出
>>> ./a.out
>>> Hello world
接下来我想hello.c
使用 emscripten 编译成 javascript
>>> emcc hello.c -I/usr/include/python2.7/ -lpython2.7
我明白了
>>> WARNING emcc: -I or -L of an absolute path encountered.
>>> If this is to a local system header/library, it may cause problems
>>> (local system files make sense for compiling natively on your system,
>>> but not necessarily to JavaScript)
>>> clang: warning: argument unused during compilation: '-nostdinc++'
它仍然会生成一个a.out.js
我尝试在 node.js 中运行的文件
>>> node a.out.js
我收到参考错误
>>> ReferenceError: _Py_SetProgramName is not defined
我尝试稍微更改生成的 javscript,但基本上我认为所有_Py_
功能都没有定义。
有没有人有这方面的经验,或任何建议的修复?