[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[mgp-users-jp 00826] Re: libVFlib*.so* check, minor fix in mgp.man and others



At Mon, 21 May 2001 16:40:19 +0900,
Yoshifumi Nishida wrote:

> >> * configure.in で
> >> 
> >>   shlib2=`echo $dir/lib/libVFlib2.so* | head -1 | sed -e 's/.*\///'`
> >>  
> >>  などとして libVFlib2.so* をチェックしてますが、これだと runtime library
> >>  の libVFlib2.so.24.0.3 を検出してしまい、開発用の library libVFlib2.so
> >>  がなくてもここのチェックが通ってしまい、その後の
> >> 
> >>         AC_CHECK_LIB($ac_cv_vf_libname, VF_Init,
> >>                 [mgp_cv_vflib_a=$ac_cv_vf_libpath],
> >>                 [echo "Fatal: $ac_cv_vf_libpath not found"
> >> 		 exit 1])
> >>  で Fatal: libVFlib2.so.24.0.3 not found で終了してしまいます。
> >>  (/usr/lib/libVFlib2.so.24.0.3 はあるにもかかわらず)
> >> 
> >>  これは
> >>  shlib2=`echo $dir/lib/libVFlib2.so | head -1 | sed -e 's/.*\///'`
> >>  でチェックした方がいいと思います。
> 
> すみません。devianは使っていないせいかちょっと意味がとれません。。。
> もうちょっとconfigureがうまくいかない状況を説明していただけないでしょうか?

debianでは libraryなどのパッケージは、runtime libraryと development files
2つにわけて作られています。vflib2 の場合

 vflib2 - runtime library
 vflib2-dev - development files

となっています。runtime library には 実行に必要な *.so が含まれていて
development files の方に header filesとかlinkに必要な *.a,*.so が
含まれています。この場合

 vflib2 には 実行するために必要な library
	/usr/lib/libVFlib2.so.24.0.3
	(ldconfig で soname に対応した /usr/lib/libVFlib2.so.24がつくられる)

 vflib2-dev には 開発に必要なファイル
	/usr/include/VF.h
	/usr/lib/libVFlib2.a
	/usr/lib/libVFlib2.so (-> libVFlib2.so.24.0.3)

が含まれていることになります。したがって vflib2 だけをインストールして
vflib2-dev をインストールしていない場合 (ほとんどのユーザは vflib2 を
使ったアプリケーションをビルドしたりするわけではないので非常によくある
パターンです) 元の configure だと

	/usr/lib/libVFlib2.so.24.0.3 はみつかる

        AC_CHECK_LIB($ac_cv_vf_libname, VF_Init,
                [mgp_cv_vflib_a=$ac_cv_vf_libpath],
                [echo "Fatal: $ac_cv_vf_libpath not found"
                exit 1])
	では実際に link するための libVFlib2.{so,a} を必要としているために
	configure がエラーになる。

で、もちろん エラーにはなるのですがこの時に libVFlib2.so.24.0.3 があるのに

 Fatal: libVFlib2.so.24.0.3 not found 

となります。

そもそもconfigureで見つけるべきなのは libVFlib2.{so,a} であって 
libVFlib2.so.* ではないのではないのですか? というのが元のメールの内容です。

-- 
鵜飼文敏