我想在Win7机器上使用Boost.python进行python 3.4项目 这将连接到我们的C ++ DLL。我正在通过boost.python工作 教程并不能使它工作(见下面的步骤14)。我不这么认为 问题与python 3.4有关但更简单(缺少路径设置) Visual Studio命令提示符)。我无法弄清楚如何解决它!救命啊!
以下是我正在做的事情的详细信息:
正如我所说它是Win7(虚拟)机器而我试图用32位运行 python / Visual studio。我确实安装了python 3.4并且在路径中......
从这个讨论开始: How to use Boost in Visual Studio 2010
我执行以下操作:
Menu->Programs->Microsoft Visual Studio 2010->Visual Studio Tools->Visual Studio Command Prompt
cd C:\Boost\boost_1_55_0
bootstrap
b2 toolset=msvc-10.0 --build-type=complete --with-python --libdir=C:\Boost\lib\i386 install
初始警告link.jam: No such file or directory
C:\Boost\boost_1_55_0>dir C:\Boost\lib\i386
Volume in drive C has no label.
Volume Serial Number is BCA0-48C6
Directory of C:\Boost\lib\i386
06/19/2014 11:45 AM <DIR> .
06/19/2014 11:45 AM <DIR> ..
06/19/2014 11:45 AM 217,088 boost_python-vc100-1_55.dll
06/19/2014 11:45 AM 188,908 boost_python-vc100-1_55.lib
06/19/2014 11:43 AM 496,640 boost_python-vc100-gd-1_55.dll
06/19/2014 11:43 AM 190,156 boost_python-vc100-gd-1_55.lib
06/19/2014 11:42 AM 217,088 boost_python-vc100-mt-1_55.dll
06/19/2014 11:42 AM 190,156 boost_python-vc100-mt-1_55.lib
06/19/2014 11:25 AM 496,640 boost_python-vc100-mt-gd-1_55.dll
06/19/2014 11:25 AM 191,452 boost_python-vc100-mt-gd-1_55.lib
06/19/2014 11:30 AM 5,757,576 libboost_python-vc100-1_55.lib
06/19/2014 11:29 AM 22,050,448 libboost_python-vc100-gd-1_55.lib
06/19/2014 11:24 AM 5,758,472 libboost_python-vc100-mt-1_55.lib
06/19/2014 11:23 AM 22,051,792 libboost_python-vc100-mt-gd-1_55.lib
06/19/2014 11:32 AM 6,247,162 libboost_python-vc100-mt-s-1_55.lib
06/19/2014 11:31 AM 21,969,684 libboost_python-vc100-mt-sgd-1_55.lib
06/19/2014 11:35 AM 6,246,266 libboost_python-vc100-s-1_55.lib
06/19/2014 11:33 AM 21,968,340 libboost_python-vc100-sgd-1_55.lib
16 File(s) 114,237,868 bytes
2 Dir(s) 14,676,119,552 bytes free
打开Visual Studio 2010并创建新的&#34;清空项目&#34;名为Python.Boost
Property Manager->Release|Win32->Microsoft.Cpp.Win32.user
并选择Properties
C:\Boost\include\boost_1_55_0\boost;C:\Python34\include
C:\Boost\lib\i386;C:\Python34\libs
在主目录中创建user-config.jam
,内容如下:
# MSVC configuration
using msvc : 10.0 ;
# Python configuration:
using python : 3.4 : C:\\Python34 : C:\\Python34\\include : C:\\Python34\\libs ;
打开Windows命令提示符(通过Tools-&gt; Visual Studio命令提示符从Python.Boost项目启动
cd C:\Boost\boost_1_55_0\libs\python\example\tutorial
bjam
C:\Boost\boost_1_55_0\libs\python\example\tutorial> bjam
link.jam: No such file or directory
...patience...
...patience...
...found 1685 targets...
...updating 6 targets...
msvc.link.dll bin\msvc-10.0\debug\hello_ext.pyd LINK : fatal error LNK1104:
cannot open file 'boost_python-vc100-mt-gd-1_55.lib'
call "C:\Program Files (x86)\Microsoft Visual Studio
10.0\VC\vcvarsall.bat" x86 >nul link /NOLOGO /INCREMENTAL:NO /DLL
/DEBUG /MACHINE:X86 /MANIFEST /subsystem:console
/out:"bin\msvc-10.0\debug\hello_ext.pyd"
/IMPLIB:"bin\msvc-10.0\debug\hello_ext.lib" /LIBPATH:"C:\Python34\libs"
@"bin\msvc-10.0\debug\hello_ext.pyd.rsp" if %ERRORLEVEL% NEQ 0 EXIT
%ERRORLEVEL%
...failed msvc.link.dll bin\msvc-10.0\debug\hello_ext.pyd
bin\msvc-10.0\debug\hello_ext.lib bin\msvc-10.0\debug\hello_ext.pdb
bin\msvc-10.0\debug\hello_ext.pdb... ...removing
bin\msvc-10.0\debug\hello_ext.pdb ...skipped <p.>hello_ext.pyd for lack of
<pbin\msvc-10.0\debug>hello_ext.pyd... ...failed updating 2 targets...
...skipped 1 target...
我错过了什么?好像路径未按预期设置?帮助赞赏!
答案 0 :(得分:0)
我找到了上述失败的答案,但我遇到了一个新问题(使用Python 3.4会导致链接器失败)。
为了解决这个问题,我在命令行中执行了以下操作:
set lib=c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\LIB;c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\ATLMFC\LIB;C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib;C:\Boost\lib\i386;C:\Python34\libs
随后又进行了bjam
次运行。使用修改后的lib设置,链接器将找到正确的文件。这在使用Python3.4时会导致另一个链接问题(我将打开一个单独的请求帮助)。
作为一项实验,我通过修改我的&#39; config-user.jam&#39;来回到Python2.7。是这样的:
using python : 2.7 : C:\\Python27 : C:\\Python27\\include : C:\\Python27\\libs ;
然后程序成功链接,然后我可以运行hello.py程序(使用python2.7)
3.4的链接器问题看起来更糟糕,我在其他地方看到过关于它的问题的评论。我将尝试使用Python 3.2(或任何&#34; 3&#34;版本)来查看它是否有效。我不需要使用3.4但我至少需要Python3。