4

私は間違いなくbjam専門家ではないので、それが本当に愚かなことであるならば、私の無知を許してください。

このチュートリアルを使用してdebugバージョンを作成しようとしています。boost::python

Python 3.3.0フォルダを作成しましC:\Development\Python-3.3.0た。ビルドは有効であり、、、.libおよび.dllすべて.exePCBuildフォルダーに存在します。インタプリタをテストしましたが、正しく動作します。

次のコマンドラインを使用しています。

bjam --user-config=user-config.jam --with-python python-debugging=on threading=multi variant=debug link=shared stage

私の問題はから来ていuser-config.jamます。以下を使用して、チュートリアルの仕様に従ってみました。

using python : 3.3 : C:\\Development\\Python-3.3.0\\PCBuild\\python_d.exe
    : C:\\Development\\Python-3.3.0\\Include C:\\Development\\Python-3.3.0\\PC
    : C:\\Development\\Python-3.3.0\\PCBuild
    : <python-debugging>on ;

しかし、リンクは失敗します...何らかの理由で、3.3を使用したいのではないようです。出力ログの一部を次に示します。

...updating 10 targets...
msvc.link.dll bin.v2\libs\python\build\msvc-11.0\debug\python-debugging-on\threa
ding-multi\boost_python-vc110-mt-gyd-1_52.dll
LINK : fatal error LNK1104: cannot open file 'python26_d.lib'

        call "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.b
at" x86 >nul
link /NOLOGO /INCREMENTAL:NO /DLL /DEBUG /MACHINE:X86 /subsystem:console /out:"b
in.v2\libs\python\build\msvc-11.0\debug\python-debugging-on\threading-multi\boos
t_python-vc110-mt-gyd-1_52.dll" /IMPLIB:"bin.v2\libs\python\build\msvc-11.0\debu
g\python-debugging-on\threading-multi\boost_python-vc110-mt-gyd-1_52.lib" /LIBPA
TH:"C:\Development\Python-3.3.0\PCBuild"   @"bin.v2\libs\python\build\msvc-11.0\
debug\python-debugging-on\threading-multi\boost_python-vc110-mt-gyd-1_52.dll.rsp
"

に変更を加えてみましたuser-config.jam。最初、私は逃げませんでした\、そして驚くべきことに、それは私が3.3を構築したかったことを検出していましたが、それ/LIBPATHは間違っていました(バックスラッシュなし):

...updating 10 targets...
msvc.link.dll bin.v2\libs\python\build\msvc-11.0\debug\python-debugging-on\threa
ding-multi\boost_python-vc110-mt-gyd-1_52.dll
LINK : fatal error LNK1181: cannot open input file 'python33_d.lib'

        call "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.b
at" x86 >nul
link /NOLOGO /INCREMENTAL:NO /DLL /DEBUG /MACHINE:X86 /subsystem:console /out:"b
in.v2\libs\python\build\msvc-11.0\debug\python-debugging-on\threading-multi\boos
t_python-vc110-mt-gyd-1_52.dll" /IMPLIB:"bin.v2\libs\python\build\msvc-11.0\debu
g\python-debugging-on\threading-multi\boost_python-vc110-mt-gyd-1_52.lib" /LIBPA
TH:"C:DevelopmentPython-3.3.0PCBuild"   @"bin.v2\libs\python\build\msvc-11.0\deb
ug\python-debugging-on\threading-multi\boost_python-vc110-mt-gyd-1_52.dll.rsp"

ご覧のとおりpython33_d.lib、これは望ましいものですが、を/LIBPATH含んでいません\/また、リンクの試行に戻るものに置き換えてみましたpython26_d.lib

役に立つ場合は、以前にインストールしたバージョンのPythonをアンインストールしました。

jamファイルにバージョン3.3を適切に要求させ、正しいパスを提供するにはどうすればよいですか?

編集:もう少し遊んで、前に「スペース」を削除しました;...それを行うだけで正しいバージョン3.3が検索されますが、相対フォルダからリリースバージョンをリンクしようとしていlibsます...最悪の場合はlibsをからPCBuildにコピーしてもかまいませんlibs

using python : 3.3 : C:\\Development\\Python-3.3.0\\PCBuild\\python_d.exe
    : C:\\Development\\Python-3.3.0\\Include C:\\Development\\Python-3.3.0\\PC
    : C:\\Development\\Python-3.3.0\\PCBuild
    : <python-debugging>on;

面白い部分は、それが私が達成しようとしていることに最も近いということですが、それは出力します

C:\Development\boost_1_52_0\boost_1_52_0\user-config.jam:4: syntax error at EOF

パーサーはjamかなり弱いようです...ヒントやヒントが役立つでしょう

編集2:問題を単純化しようとして、私は自分を変更してuser-config.jam、次のものだけを含めました。

using python : 3.3 ;

そして、次のコマンドラインを使用します。

bjam --user-config=user-config.jam --with-python threading=multi variant=release link=shared stage

予想通り、それは見つけることができません.lib

...updating 4 targets...
msvc.link.dll bin.v2\libs\python\build\msvc-11.0\release\threading-multi\boost_p
ython3-vc110-mt-1_52.dll
LINK : fatal error LNK1181: cannot open input file 'python33.lib'

        call "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.b
at" x86 >nul
link /NOLOGO /INCREMENTAL:NO /DLL /MACHINE:X86 /subsystem:console /out:"bin.v2\l
ibs\python\build\msvc-11.0\release\threading-multi\boost_python3-vc110-mt-1_52.d
ll" /IMPLIB:"bin.v2\libs\python\build\msvc-11.0\release\threading-multi\boost_py
thon3-vc110-mt-1_52.lib" /LIBPATH:"C:\Development\Python-3.3.0\libs"   @"bin.v2\
libs\python\build\msvc-11.0\release\threading-multi\boost_python3-vc110-mt-1_52.
dll.rsp"

そこで、作成したすべてのライブラリにアクセスできるように、PCBuildフォルダのクローンを作成することにしました...しかし、その後、またはコマンドラインを変更せずに... Python 2.6を探していますか?!?libs.jam

...updating 4 targets...
msvc.link.dll bin.v2\libs\python\build\msvc-11.0\release\threading-multi\boost_p
ython3-vc110-mt-1_52.dll
LINK : fatal error LNK1104: cannot open file 'python26.lib'

        call "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.b
at" x86 >nul
link /NOLOGO /INCREMENTAL:NO /DLL /MACHINE:X86 /subsystem:console /out:"bin.v2\l
ibs\python\build\msvc-11.0\release\threading-multi\boost_python3-vc110-mt-1_52.d
ll" /IMPLIB:"bin.v2\libs\python\build\msvc-11.0\release\threading-multi\boost_py
thon3-vc110-mt-1_52.lib" /LIBPATH:"C:\Development\Python-3.3.0\libs"   @"bin.v2\
libs\python\build\msvc-11.0\release\threading-multi\boost_python3-vc110-mt-1_52.
dll.rsp"

掘り下げるほど、私は混乱します...また、一方はaで失敗しLNK1104、もう一方はLNK1181...で失敗します。

4

1 に答える 1

3

さて、私はすべての可能なパラメータをbjam最初から取り除き、最初から構築することにしました。私はついにbjamこのコマンドラインを使用して可能なすべてのターゲットを構築するようになりました:

 bjam --user-config=user-config.jam --with-python

以下のみが含まれている場合user-config.jam

using python : 3.3 : C:\\Development\\Python-3.3.0\\PCBuild\\python.exe
    : C:\\Development\\Python-3.3.0\\Include C:\\Development\\Python-3.3.0\\PC
    : C:\\Development\\Python-3.3.0\\PCBuild : ;

現在正常に動作しているようです。

ありがとう

于 2012-12-24T07:04:56.390 に答える