Python で使用するためにいくつかの C++ 関数をラップしようとしています。たとえば、boost Python チュートリアルの関数は次のとおりです。
// Copyright Joel de Guzman 2002-2004. Distributed under the Boost
// Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt
// or copy at http://www.boost.org/LICENSE_1_0.txt)
// Hello World Example from the tutorial
// [Joel de Guzman 10/9/2002]
#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);
}
これを .pyc ファイルにコンパイルして Python にインポートしようとすると、次のエラーが表示されます。
ImportError: C:\hello_ext.pyc の不正なマジック ナンバー
別のフォーラムの方法を使用してマジック ナンバーを確認しましたが、間違っているようです。グーグルで検索しましたが、このエラー メッセージに関する有用な情報を見つけることができませんでした。これは私のビジュアル スタジオ プロジェクト ファイルの設定が悪いのではないかと思います。
Visual Studio 2010 サービス パック 1、python 2.7.3、およびブースト 1.53 を使用しています。
次のオプションでboostをコンパイルしました。
b2 install toolset=msvc-10.0 variant=debug,release threading=multi link=shared runtime-link=shared --prefix="C:\boost"