C言語からGaucheのライブラリを使う、はじめの一歩 on Dream Linux(Debian)


Gauche/Scheme

C言語からGaucheのライブラリを使う、はじめの一歩 on Dream Linux(Debian)

source

sample.c

	#include <gauche.h>
	
	int main( int argc, char **argv ) {
	
	    printf( "Hello, gauche!\n" );
	    
	    ScmObj sObj = SCM_MAKE_STR( "(+ 1 1)" );
	    
	    char *s = Scm_GetString( SCM_STRING( sObj ));
	
	    puts( s );
	    
	    return 0;
	}
	

コンパイル

※ライブラリの場所など環境に応じて読み替えてください。

まず、環境変数を確認します。

	$ printenv LD_LIBRARY_PATH

なにも(あるいは、Gaucheのライブラリ-libgauche.so.0-がある場所が)表示されていなければ、 ライブラリの場所を追加してあげる必要があります。

	$ export LD_LIBRARY_PATH="/usr/local/lib":$LD_LIBRARY_PATH

もしくは、 恒久的に環境変数を保持したい場合には、/etc/ld.so.confにライブラリの場所を追加し、スーパーユーザーでldconfigコマンドを実行します。

/etc/ld.so.conf

	/usr/local/lib
	# /sbin/ldconfig

それでは、コンパイルします。

	$ gcc sample.c -I/usr/local/lib/gauche/*.*.**/include -lgauche
  • *.*.**は、Gaucheのバージョンです。

\-Iオプションで、Gaucheのヘッダーファイル-gauche.h-がある場所を指定しています。

実行結果

	$ ./a.out
	Hello, gauche!
	(+ 1 1)

memo

  • ScmObj?は、gaucheライブラリ内で使われているオブジェクトもどき
    • この型を用いることで、ライブラリ内の関数がいろいろと使えるはず。

...とおもったが、

こんな低レベルのところからいじってるときりがない(いや、あるんだが) ので、

少々勉強中。

最新の10件

2011-03-03 2010-11-08 2010-10-08 2010-10-29 2010-11-25 2010-10-22 2010-11-22 2013-02-12 2011-05-13 2011-04-20

今日の2件

  • counter: 2401
  • today: 1
  • yesterday: 0
  • online: 1