トップページ -> コンピュータ設定 -> Cygwin, MinGW の活用 -> Octave の機能を呼び出す C++ プログラムの見本と実行手順(Windows 上の Cygwin と liboctave を使用)
[サイトマップへ], [サイト内検索へ],

Octave の機能を呼び出す C++ プログラムの見本と実行手順(Wihdows 上の Cygwin と liboctave を使用)

サイト構成 連絡先,業績など コンピュータ実習 データの扱い コンピュータ活用 教材(公開) サポートページ

liboctave とは,Octave の機能(全機能ではないが)が集まった C++ 言語のライブラリファイルとヘッダファイル. 自分で,C++ のプログラムを書き,liboctave の機能を呼び出すことが簡単にできます. この Web ページでは,liboctave の機能を呼び出すような C++ プログラムを作る手順を図解で説明する.

<libctave とは>

Octave は, Octave 言語の処理系(インタプリタ)と,liboctave 相当の機能だけでなく, ダイナミックリンクされる種々のライブラリ関数(DLD_FUNCTIONSなど)や各種のパッケージ(Octave-forge など)が集まっている. つまり,liboctave は Octave の一部分の機能になる.


前準備

  1. Cygwin の Web ページの記述に従って,Cygwin のインストールが済んでいること.

  2. Octave のビルドとインストールに関する Web ページ の記述に従って,Cygwin 上で Octave のビルドとインストールが済んでいること. ビルドの時に使った Octave のソースコードは消さずに残しておくほうが便利です.

(オプション)Eclipse を使う場合

  1. Eclipse のインストールが済んでいること.

  2. 「Eclipse に C/C++ 開発ツール (CDT) をインストール」の Web ページの記述に従って,CDT プラグインのインストールが済んでいること.

liboctave の機能を呼び出す C++ プログラムの見本と,コマンドラインでのビルドと実行

#include <stdio.h>
#include <time.h>
#include <octave/config.h>
#include <octave/Matrix.h>

// 正方行列のサイズを指定
#define DIM 2000

int main( int argc, char **argv )
{
  fprintf( stderr, "start, \n" );
  clock_t c = clock();

  // 行列の積と固有値/固有ベクトル
  Matrix X(DIM, DIM);
  Matrix Y(DIM, DIM, 1.0);
  Matrix Z = X * Y;
  EIG eig(X);

  fprintf( stderr, "done, elapsed time = %f [sec]", ( (double)clock() - (double)c ) / CLOCKS_PER_SEC );
  return 0;
}

ビルドの手順

ATLAS と netlib LAPACK を使うものとして説明する.

g++ -I/usr/include/octave-3.0.3 -mthreads mul.cc \
  -L/usr/lib/octave-3.0.3 -Xlinker --enable-auto-import -loctave -ldl \
  -llapack_LINUX -ltmglib_LINUX -L/usr/atlas/lib -lptf77blas -latlas  -lstdc++ -lsupc++

※ -llapack_LINUX -ltmglib_LINUX の順序を変えて 「-L/usr/atlas/lib -lptf77blas -latlas -llapack_LINUX -ltmglib_LINUX -lstdc++ -lsupc++」にすると遅くなることがある.要注意.


Eclipse でのプログラム開発手順

Eclipse を使い,新規プロジェクトの作成,C プログラムの作成, 保存, 実行を試す.

あらかじめ決めておく事項

プロジェクトの新規作成

下記の手順で,プロジェクトを新規に作成します.

プロジェクトを作成すると,ワークスペースのディレクトリ(C:\workspace)の下に, プロジェクトのディレクトリができます.プロジェクトのディレクトリの下には,デフォルトでは,Debug, src の2つのサブディレクトリができます.

  1. プロジェクトの新規作成の開始

    「ファイル」→「新規 (New)」→「プロジェクト (Project)」
    または,パッケージ・エキスプローラ内で,右クリック→「新規 (New)」→「プロジェクト (Project)」

  2. C++」の展開

    新規プロジェクトのウインドウが開くので, 「C++」を展開する.

  3. C++ プロジェクト」の選択

    展開した「C++」の下にある 「C++ プロジェクト」を選び,「次へ」をクリック.

  4. プロジェクト名とプロジェクトタイプの指定

    新規Cプロジェクトのウインドウが開くので,プロジェクト名プロジェクト・タイプを指定する.

    終わったら,「次へ」をクリック

  5. 基本設定

    基本設定はデフォルトのままでよい. 「次へ」をクリック

  6. 構成の選択

    「構成の選択」はデフォルトのままでよい. 「完了」をクリック

ソース・ファイルの作成

プロジェクトのプロパティーの設定

プロジェクトのプロパティーを設定し,liboctave の機能が使えるようにする.

ビルド

実行

デフォルトでは,実行ファイルは, C:\workspace\Hello\Debug\Hello.exe に出来る.(「Hello」はプロジェクト名)

Eclipse のプロジェクト・エクスプローラで 「Debug」を展開.Hello.exe を右クリックし,「実行」から「ローカル C/C++ アプリケーション」を選ぶ. 数秒ほど待つと,コンソールに結果が出る.

※ あるいは,Cygwin のコンソールで, C:\workspace\Hello\Debug\Hello.exe を実行. 数秒ほど待つと,コンソールに結果が出てくる.

※ 実行がうまくいかない場合, C:\cygwin\bin\cygwin1.dll を C:\Windows\System32 にコピーすることを忘れている可能性がある.



本サイトのサイトマップは,サイトマップのページをご覧下さい. 本サイト内の検索は,サイト内検索のページをご利用下さい.
問い合わせ先: 金子邦彦(かねこ くにひこ)