2014-06-19 44 views
2

我想在一個Win7機器上使用Boost.python來連接到我們的C++ DLL的Python 3.4項目 。我正在按照boost.python 教程的方式工作,無法使其工作(請參閱下面的步驟14)。我不認爲這個 問題與Python 3.4有關,但更容易一些(在Visual Studio命令提示符中缺少 中的路徑設置)。我無法弄清楚如何解決它!幫幫我!如何獲取boost.python教程使用Visual Studio 2010和Python 3.4?

下面是我在做什麼的詳細信息:

正如我說,這是一個Win7的(虛擬)機器,我想與32位 蟒蛇/ Visual Studio中運行。我有蟒蛇3.4安裝和路徑...

從這個討論開始: How to use Boost in Visual Studio 2010

我做到以下幾點:

  1. 啓動Visual Studio 2010命令提示符: Menu->Programs->Microsoft Visual Studio 2010->Visual Studio Tools->Visual Studio Command Prompt
  2. cd C:\Boost\boost_1_55_0
  3. bootstrap
  4. 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 
    
  5. 打開Visual Studio 2010,並創建新的 「空項目」 之稱Python.Boost

  6. 右鍵單擊Property Manager->Release|Win32->Microsoft.Cpp.Win32.user並選擇Properties
  7. 選擇 'VC++目錄'
  8. 編輯在「包含目錄」增加C:\Boost\include\boost_1_55_0\boost;C:\Python34\include
  9. 編輯 '圖書館目錄' 增加C:\Boost\lib\i386;C:\Python34\libs
  10. 按照指令從這裏:http://www.boost.org/doc/libs/1_55_0/libs/python/doc/tutorial/doc/html/python/hello.html
  11. 在主目錄下面的內容創建user-config.jam

    # MSVC configuration 
    using msvc : 10.0 ; 
    # Python configuration: 
    using python : 3.4 : C:\\Python34 : C:\\Python34\\include : C:\\Python34\\libs ; 
    
  12. 打開Windows命令提示符(從Python的開始。通過工具提升項目 - > Visual Studio命令提示符

  13. cd C:\Boost\boost_1_55_0\libs\python\example\tutorial
  14. 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

[如何獲取boost.python教程示例以鏈接到Python3?](http://stackoverflow.com/questions/24314644/how-to-get-boost-python-tutorial-example-to- link-with-python3) –

+0

請不要這樣做兩次!刪除這個Q/A而選擇較新的一個,或編輯改進! –

+0

如何在一個單一的組合,他們非常相似。在'boost :: python'論壇上抱怨文檔很差。 –

回答

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時出現另一個鏈接問題(我將另外請求幫助)。

當我修改我的「配置-user.jam」搬回Python2.7的實驗是這樣的:

using python : 2.7 : C:\\Python27 : C:\\Python27\\include : C:\\Python27\\libs ; 

然後程序鏈接成功,然後我可以運行hello.py程序(使用python2.7)

與3.4的鏈接器問題看起來很蹩腳,我在其他地方看到了關於它的問題。我將嘗試使用Python 3.2(或任何「3」版本)來查看是否有效。我不需要使用3.4,但我至少需要Python3。