2

bjamとboost-pythonを使用してC++で記述されたPythonモジュールをビルドするプロジェクトを継承しています。以前に含まれていたJamroot:

constant PYTHON_ROOT : C:/Python26 ;
using python : 2.6 : $(PYTHON_ROOT) ;
use-project boost : C:/boost_1_40_0 ;

代わりにPython2.7をインストールしているので、次のように変更しました。

using python : 2.7 : C:/Python27 ;

次に、を実行しましたが、Boost libファイルがbjam --toolset=msvc --with-python見つからなかったため、(非常に遅い「... patience ...」メッセージのセットの後で)失敗しました。pyconfig.h私はそれを次のように変更しました:

using python : 2.7 : C:/Python27/python.exe : C:/Python27/include : C:/Python27/lib ;

pyconfig.hを指定していても、上記の行の2.6バージョンで問題が発生していましたが、問題を解決したように見えるパスについて明示する必要があります--python=2.7

LINK : fatal error LNK1104: cannot open file 'libboost_filesystem-vc90-mt-1_40.lib'に存在していても、のようなBoostリンカーエラーがたくさん発生しC:/boost_1_40_0/stage/lib/ます。

私が見逃している構成フラグについて何かアイデアはありますか?

4

2 に答える 2

1

Jamrootファイルの内容によっては、最初に数行追加する必要がある場合があります。

use-project boost : <Full path to your boost root directory> ;

これにより、ディレクトリにあるブーストを使用するようにプロジェクトに指示する必要があります。

また、プロジェクトラインで、use-project boostコマンドを使用すると、プロジェクト定義の要件セクションにboostpythonのライブラリ要件を追加できます。

<library>/boost/python//boost_python

これらの2行がJamrootファイルに追加されたため、リンクの問題は発生しなくなりました。

Jamrootファイルを投稿できれば、もっと具体的に必要なものがあるかどうかを確認できます。

于 2013-02-21T17:50:38.757 に答える
1

これは、「C:/ boost_1_40_0」内の「Boost.Python」がPython2.6で構築されたためだと思いますが、現在のPython2.7バイナリおよびライブラリにはPython2.6の「Boost.Python」を使用したいと考えています。これは一般的なエラーです。BoostソースパッケージをPython2.7で再構築する必要があります!

于 2013-02-24T23:42:31.697 に答える