2014年3月31日月曜日

Python-3.3用のC++モジュールの事始め(saucy-baseの場合)

諸事情から学生さんがPython3でC++モジュールを作りたい話になりました。そんなわけで、とりあえず必要最小限のサンプルを作って紹介する事にしました。

※ソースコードのコメントがまっはなのはPython初学者&C++久しぶりの学生さん向けの事情によるものです。頑張ってね(╹◡╹)

[1. 環境準備]
apt install python3-dev
"/usr/include/python3.3/Python.h"ほか必要に応じて芋づる導入されるはず。

[2. 簡単なC++によるPython3モジュールのソースコード定義]

[3. こんぱいる]
g++ test.cxx -std=c++11 -shared -fPIC -Wall -pedantic -I/usr/include/python3.3 -o test.so
[4. python3.3で使う]

さしあたりPython-3.3のインタープリターを起動:
python3.3
作ったtestモジュールをimport:
>>> import test
importされたtestモジュールのtest1メソッド test.test1() を評価:
>>> test.test1()
*** test1 called ***
'hello Python3-FFI-C++'

成功(╹◡╹)


参考:
  1. Python » Documentation » Python インタプリタの拡張と埋め込み »
  2. def __mopemope__(self, *args, **kwargs): - Python3 Advent Calendar - Pythonで2/3両方で動くコードを書く(C/API)
  3. bkブログ - Linux の共有ライブラリを作るとき PIC でコンパイルするのはなぜか

0 件のコメント:

コメントを投稿