私は間違いなくbjam
専門家ではないので、それが本当に愚かなことであるならば、私の無知を許してください。
このチュートリアルを使用してdebug
バージョンを作成しようとしています。boost::python
Python 3.3.0
フォルダを作成しましC:\Development\Python-3.3.0
た。ビルドは有効であり、、、.lib
および.dll
すべて.exe
がPCBuild
フォルダーに存在します。インタプリタをテストしましたが、正しく動作します。
次のコマンドラインを使用しています。
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
...で失敗します。