Boost Python ライブラリを使用して、C++ コードに Python 拡張機能を作成しています。以下に示す C++ コードから 'greet' 関数を python から呼び出せるようにしたいと思います。
#include <boost/python/module.hpp>
#include <boost/python/def.hpp>
char const* greet()
{
return "hello, world";
}
BOOST_PYTHON_MODULE(hello_ext)
{
using namespace boost::python;
def("greet", greet);
}
そしてpythonコード:
import hello_ext
print hello_ext.greet()
私は bjam を使用してこれを行うことができました (hello_ext.pyd が生成され、うまく動作します) が、今度は Visual Studio 2008 を使用してビルドしたいと思います。hello.dll がビルドされます (ただし、hello_ext.dll も.pyd)。私のpythonコードを呼び出した後、エラーが発生しました:
ImportError: hello_ext という名前のモジュールがありません。
hello.dll の名前を hello.pyd または hello_ext.pyd に変更した後、別の ImportError: Dll load failed が発生しました
VS 2008 を使用して正しい .pyd ファイルを作成するにはどうすればよいですか?