3

JavaScriptに移植したいPythonで書かれた単純な関数があります。

Python 2.7 を .so ライブラリにコンパイルしたので、それは問題ではありません。

私が抱えている問題は、プログラムを cython でコンパイルした後、関数名がすべてごちゃ混ぜになってしまうことです。つまり、emcc を実行したときに関数を保存する方法がわからないということです。

emscripten を使用して Python プログラムを js にコンパイルした経験のある人はいますか?

任意の情報をいただければ幸いです。

注:正確な機能をpythonの機能に維持したいのですが、pythonプログラムをjavascriptに変換するものは必要ありません。

4

1 に答える 1

6

この他の質問は、受け入れられた回答で、同じ問題について不平を言っています: 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(...);

試してみる価値はありますが、失敗した場合はコメントで他のオプションを検討してください。

于 2013-11-07T04:13:59.113 に答える