C でPython拡張機能を作成する際に、いくつかのことをテストしようとしていますがPyObject*
、 C から s を構築できないことに気付きましたint
。ここに、問題を示すコンパイル可能なコード スニペットがあります ( #include <Python.h>
Mac でない場合は、必要になる場合があります)。
#include <Python/Python.h>
int main(){
PyObject* obj = Py_BuildValue("i", 42);
return 0;
}
しかし、これはSegmentation fault: 11
. Xcode の LLDB に基づいて、呼び出し時に何か問題があるように見えPyInt_FromLong
ます。
同じことをしようとしますが、を使用するdouble
と、
PyObject* obj = Py_BuildValue("d", 42.0);
それはうまく機能します...オンラインで何も見つけることができず、アイデアがありません-助けていただければ幸いです。