カスタムライブラリの作り方(libgdbmに学ぶ)
Ver 0.1 6/3/98

目次

  1. ヘッダファイルについて
  2. ライブラリ作成の手順
  3. 項目3

  1. ヘッダファイルについて
  2. まず,gdbm-1.7.3.tar.gzを入手し,解凍した後,./configureを実行しMakefile を作成する.Makefileのgdbm.hヘッダファイルの生成手順を見ると,gdbm.proto, gdbmerrno.h,gdbm.proto2の順に1つのファイルに格納したものが,ユーザがインク ルードするgdbm.hファイルであることが分かる.
    gdbm.hの生成手順(Makefile)
      gdbm.h: gdbm.proto gdbmerrno.h gdbm.proto2
              rm -f gdbm.h
              cp $(srcdir)/gdbm.proto gdbm.h
              chmod +w gdbm.h
              grep _ $(srcdir)/gdbmerrno.h >> gdbm.h
              cat $(srcdir)/gdbm.proto2 >> gdbm.h
              chmod -w gdbm.h
      

    gdbmerrno.h,gdbm.proto,gdbm.proto2には,ユーザが直接使用するデータ型の定義 (typedef)と,ユーザが使用する関数のプロトタイプがexternで宣言されている.


  3. ライブラリ作成の手順

    それでは,libgdbm.aライブラリが作成される手順をMakefileから抜粋して,見てみよう.

    INSTALL = /usr/bin/install -c INSTALL_PROGRAM = $(INSTALL) INSTALL_DATA = $(INSTALL) -m 644 DBM_OF = dbminit.o delete.o fetch.o store.o seq.o close.o NDBM_OF = dbmopen.o dbmdelete.o dbmfetch.o dbmstore.o dbmseq.o \ dbmclose.o dbmdirfno.o dbmpagfno.o dbmrdonly.o GDBM_OF = gdbmopen.o gdbmdelete.o gdbmfetch.o gdbmstore.o gdbmclose.o \ gdbmreorg.o gdbmseq.o gdbmsync.o gdbmerrno.o gdbmexists.o gdbmsetopt.o \ bucket.o falloc.o findkey.o global.o hash.o update.o \ version.o OBJS = $(DBM_OF) $(NDBM_OF) $(GDBM_OF) install: libgdbm.a $(INSTALL_DATA) libgdbm.a $(libdir)/libgdbm.a libgdbm.a: $(OBJS) gdbm.h rm -f libgdbm.a ar q libgdbm.a $(OBJS) $(RANLIB) libgdbm.a


Written in 1998

[ ホームへ | ハッキングのトップへ | Shellのトップへ | Bourneシェルのトップへ ]
ここにコードのタイトルを書く.
  ここに,タブ(2spaces)開けたところからコードを書く.