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ライブラリ内で使われているオブジェクトもどき
    • この型を用いることで、ライブラリ内の関数がいろいろと使えるはず。

...とおもったが、

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

少々勉強中。