我已经成功安装 Emscripten 并让它在Ubuntu 16.04虚拟机上运行。我还成功地将 helloworld.c 文件转换为 Web 程序集。目前,我正在尝试使用 emscripten 将 python 转换为 Web 程序集。问题是 emscripten 目前不支持 python,因此作为一种解决方法,我尝试使用 Cython 将 python 代码转换为 C,我成功地做到了。尽管尝试将 cython c 文件转换为 Web 程序集时出现错误。这是控制台日志:
$emcc pony_gp.c -o pony_gp.html
In file included from pony_gp.c:11:
In file included from /usr/include/python2.7/Python.h:58:
/usr/include/python2.7/pyport.h:886:2: error: "LONG_BIT definition appears
wrong for platform (bad gcc/glibc config?)."
#error "LONG_BIT definition appears wrong for platform (bad gcc/glibc config?)."
ERROR:root:compiler frontend failed to generate LLVM bitcode, halting
根据pyport.h,产生这个错误是因为在一些32位系统中,LONG_BIT被错误地定义为64,而应该是32。我试过注释掉这一行,但这只允许程序静默运行,最后没有生成任何 Web 汇编代码,只有 html 和 javascript。
我在这里读过,这个问题是因为“cmake 正在为头文件选择一个版本的 python dylib 和一个单独的 python 版本”。这是有道理的,因为我最近从 Python 2.7.13-1 降级到 Python 2.7.11-1,因为 Python 2.7.13-1 与 python-dev 包不兼容。虽然,我不知道如何解决这个问题。
有谁知道该怎么做?