2011-01-13 97 views
0

我有一些以C++ 0x編寫的代碼,我想以Python 2.7的擴展名的形式公開。由於它使用了多個C++ 0x特性,我不想用C++ 03重寫它,所以我不得不使用VC2010。但是默認的Python 2.7安裝是使用VC2008編譯的。使用VC2010編譯Python擴展

我發現this post解釋如何強制distutils的使用VC2010,但評論者指出,這將導致MSVCR90.DLL(由解釋鏈接)和msvcr100.dll(通過擴展鏈接)之間的衝突DLL 。

有沒有辦法在VC2010中編譯擴展,而無需重新編譯Python?

(我已經在Windows開始編程只是在最近,所以我沒有的動態鏈接是如何工作的有一個確切的理解)

回答

2

沒有,沒有。

就像你已經知道的那樣,當你編譯VS2010工具集時,它會鏈接到msvcr100.dll。由於Python與msvcr90.dll相鏈接,因此在混合使用相同應用程序時,您會感到不愉快的驚喜。

現在最好的選擇是可能會停止使用任何C++ 0x功能並使用VS2008或mingw編譯您的擴展。

如果這是你不打算分發的東西,它只是用來玩遊戲,使用VS2010編譯Python是唯一的選擇。