English | Japanese SourceForge.JP
Copyright (c) 2011-2012 Yutaka Saito

バイナリモジュールの作り方

Gura はバイナリモジュールを作成するための支援機構を持っています。以下、自作のバイナリモジュール hoge の作り方を紹介します。

以下のコマンドを実行します。

$ gura -i lets_module hoge

これで、ビルド用スクリプト build.gura と、モジュールのひな形ソースファイル Module_hoge.cpp が生成されます。 Module_hoge.cpp は 40 行足らずの C++ ソースファイルですが、これで test という名前の Gura の関数をひとつ定義したモジュールができます。

build.gura を実行すると適切な C++ コンパイラを実行してモジュールを作成します (Windows 環境の場合、Visual Studio 2010 をインストールしておく必要があります。無償の Express 版も使えますa)。

$ gura build.gura --here

現在のディレクトリにバイナリモジュールファイル hoge.gurd ができていることを確認したら、これを実際にインポートして動作を確認してみます。

$ gura
>>> import(hoge)
>>> dir(hoge)
[`__name__, `test]
>>> hoge.test(3, 5)
8

あとは、Module_hoge.cpp を編集して、欲しい機能を実装していきましょう。動作するものができたら、以下のコマンドを実行して Gura の環境にモジュールをインストールします。

$ sudo gura build.gura install

ところで、実際にプログラムを書いていくには Gura の内部で実装されている C++ の関数やクラスを知る必要がありますが、その近道は他のモジュールのソースファイルを見ることです。まずは Gura が提供しているモジュールのうち、あなたが作ろうとしている機能に近いものを探しましょう。モジュールのソースファイルはソースパッケージの中で gura/src/Module_モジュール名 という名前のディレクトリに格納されています。いずれもソースファイル 1~2 個から成るシンプルなものですし、すべて同じコーディングポリシーに基づいて作られているので、目的の機能を実現する手段を見つけるのは比較的容易だと思います。