2011-04-05 111 views
4

我在查找指南時遇到了一些麻煩,該指南允許我將Boost.Python編譯集成到VS 8.它似乎很大程度上依賴於此bjam實用程序來構建源代碼,但是沒有提及如何將其整合到VS 8界面中。將Boost.Python與Visual Studio 8集成

我可以看到,bjam程序調用VS 8做了大量的編譯工作。

+0

你想編譯Boost.Python本身還是隻編譯使用Boost.Python的Python擴展模塊?除了工作編譯器和鏈接器之外,後者應該不需要任何特殊的東西 - 例如,我已經使用Xcode和SCons完成了該工作。 – Philipp 2011-04-05 14:59:55

+0

後者,我想編譯使用Boost.Python的C++擴展。但是,當我試圖自己編譯並試圖從python調用.pyd時,我不斷收到錯誤: 'Traceback(最近調用最後一個):文件「F:\ Visual Studio 2005 \ Projects \ test_vs_proj \ debug \ hello.py「,第6行,在 import test_vs_proj ImportError:動態模塊沒有定義初始化函數(inittest_vs_proj)' – 2011-04-05 15:04:22

+0

重新構造你的問題併發布你想要暴露給Python的代碼示例。事實上,你的問題可能與編譯Visual Studio 8和bjam無關。 – Rod 2011-04-05 16:10:01

回答

0

我發現這個問題,謝謝你的建議菲利普。事實證明我只需要提供正確的頭文件和庫目錄到VS 8並編譯爲DLL(不是控制檯程序)。

包含目錄:

  • \升壓蟒蛇\ boost_1_46_1
  • \ Python27 \ include`

庫目錄:

  • \ Python27 \庫
  • \ boost-python \ boost_1_46_1 \ stage \ lib`

任何人都可以確認這些是用於包含和鏈接的正確目錄嗎?

3

bjam用於編譯boost本身(儘管您可以將它用作代碼的配置工具)。運行該實用程序應編譯該庫,不需要進一步的工作,afaik。 就我所知(假設列出的目錄路徑是正確的,例如:C:\ Python27 \ include),您在第二篇文章中列出的include和庫路徑是正確的。

當我在使用boost.python時,發現我無法編譯任何安裝了64位版本Python的C++/Python庫。我首先必須刪除64位版本並安裝32位版本。

此外,如果我在#include陳述之前包含#define BOOST_PYTHON_STATIC_LIB,彙編纔會成功。我仍然沒有想出爲什麼。

我希望我的回答(我在這個網站上的第一個人,所以不要對我太苛刻;))有任何用處。