2012-02-10 88 views
3

我使用distutils,並有一個模塊spammodule.c編譯,鏈接和完美工作。如何在OSX上爲Python編譯C++擴展(而不是C)?

但是,如果我重命名模塊的.cpp和重新運行的distutils構建/安裝順序,模塊建造,但給我一個錯誤的進口在Python:

導入錯誤:動態模塊沒有定義初始化函數(initspam)

對於CPP中的新模塊而不是C有不同的格式嗎?

回答

6

你需要,以防止它的名字從得到錯位內

#ifdef __cplusplus 
extern "C" { 
#endif 

//initspam goes here 

#ifdef __cplusplus 
} 
#endif 

附上您的初始化函數。

+0

太棒了 - 非常感謝你。 – user1202733 2012-02-10 19:08:48

相關問題