2012-02-10 1 views
3

私はdistutilsを使用しており、コンパイル、リンク、そして完全に動作するモジュールspammodule.cを持っています。OSX上でPythonのC++拡張(Cではなく)をコンパイルするにはどうしたらいいですか?

しかし、私は.CPPし、そのモジュールの名前を変更し、再実行のdistutilsは/シーケンスをインストール構築、モジュールのビルドが、私のpythonでインポートのエラーを出します:

はImportError:動的モジュールinit関数を定義していません。 (initspam)

新しいモジュールの形式はCではなくCPPにありますか?

答えて

6

あなたはマングルされ得ることから、その名を防ぐために

#ifdef __cplusplus 
extern "C" { 
#endif 

//initspam goes here 

#ifdef __cplusplus 
} 
#endif 

以内にあなたのinit関数を囲む必要があります。

+0

これはすごくうれしいですね。 – user1202733

関連する問題