1

boost.pythonを使用するプロジェクトを正しくビルドする方法が本当に理解できません。boost_(python/thread/system)-mt を含めました。簡単なモジュール ファイルは次のとおりです。

#include <boost/python.hpp>
#include "script.hpp"
#include "boost/python/detail/wrap_python.hpp"

BOOST_PYTHON_MODULE(temp)
{
    namespace py = boost::python;

    py::def("PyLog", &engine::log);
}

ここにビルドログがあります: http://dpaste.com/179232/ . 私が何を忘れたか想像できません。


システム: Arch Linux;

ls /usr/lib |grep boost : http://dpaste.com/179233/

4

2 に答える 2

2

リンク段階でライブラリが欠落しているように見えます。これらの未定義の参照はすべて Python ライブラリに含まれています。おそらく、最後の gcc コマンドに「-lpython2.5」などを追加する必要があるだけです。

于 2010-04-04T17:23:59.557 に答える
1

Python自体のヘッダーが欠落しているようです。

PySequence_GetSliceやなどの記号PyExc_ValueErrorは、boost::python ヘッダーではなく、Python ヘッダーからのものです。

それしか言えません、すみません。boost::python はよくわかりません。「インクルード ファイルがありません」というエラーが表示されないことに驚きました。boost::python には python ヘッダー自体が含まれていないと思いますか?

ところで、私はhttp://www.boost.org/doc/libs/1_42_0/libs/python/doc/building.htmlで次を見ました

wrap_python.hpp の前にシステム ヘッダーを #include しないでください。この制限は、実際には Python によって課されています。より正確には、Python とオペレーティング システムとの相互作用によって課されています。詳細について は、 http://docs.python.org/ext/simpleExample.html を参照してください。

多分それは助けることができますか?

于 2010-04-04T05:39:53.510 に答える