野首さま
谷村です。ご助言感謝申し上げます。
> am_cv_func_iconv=yes
> am_cv_func_iconv_works=yes
> am_cv_lib_iconv=yes
> am_cv_proto_iconv='extern size_t iconv (iconv_t cd, char * *inbuf,
> size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);'
>
> この4つの環境変数をexportした状態でconfigureを実行したらうまく行きま
> せんでしょうか。
やってみましたが、相変わらず、iconvのチェックでconfigureが止まります。
なお、これらの環境変数を削除して、configureをやり直し、config.logの中を確認すると次のようになりました。
$ unset am_cv_func_iconv am_cv_func_iconv_works am_cv_lib_iconv
am_cv_proto_iconv am_cv_proto_iconv_arg1
$ grep iconv config.log
configure:12299: checking for iconv
/tmp/ccBWKH8r.o:conftest.c:(.text+0x1e): undefined reference to `_libiconv_open'
/tmp/ccBWKH8r.o:conftest.c:(.text+0x4e): undefined reference to `_libiconv'
/tmp/ccBWKH8r.o:conftest.c:(.text+0x5a): undefined reference to
`_libiconv_close'
| #include <iconv.h>
| iconv_t cd = iconv_open("","");
| iconv(cd,NULL,NULL,NULL,NULL);
| iconv_close(cd);
configure:12343: i686-w64-mingw32-gcc -o conftest.exe
-I/home/hoge/mingw/include -I/usr/i686-w64-mingw32/include -Wall -Wunused
-Wuninitialized -Wmissing-prototypes -Wmissing-declarations -pedantic
-L/home/hoge/mingw/lib -L/usr/i686-w64-mingw32/lib conftest.c -liconv >&5
configure:12356: checking for working iconv
configure:12478: checking how to link with libiconv
configure:12480: result: -liconv
configure:12491: checking for iconv declaration
extern size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft,
char * *outbuf, size_t *outbytesleft);
am_cv_func_iconv=yes
am_cv_func_iconv_works='guessing yes'
am_cv_lib_iconv=yes
am_cv_proto_iconv='extern size_t iconv (iconv_t cd, char * *inbuf, size_t
*inbytesleft, char * *outbuf, size_t *outbytesleft);'
am_cv_proto_iconv_arg1=
LIBICONV='-liconv'
LIBS='-liconv '
LTLIBICONV='-liconv'
am_cv_func_iconv_worksがyesかguessing yesかを除いて、am_cv_func_iconv
am_cv_lib_iconv am_cv_proto_iconvはご助言の通りになっております。
config.logからiconvをテストするCコードを抜き出して、それだけをコンパイルしてみました。
iconvは$HOME/mingw配下にインストールしてあります。
========= test.c =========
#include <stdlib.h>
#include <iconv.h>
int
main ()
{
iconv_t cd = iconv_open("","");
iconv(cd,NULL,NULL,NULL,NULL);
iconv_close(cd);
;
return 0;
}
$ i686-w64-mingw32-gcc test.c -I$HOME/mingw/include -L$HOME/mingw/lib -liconv
wineの仮想ドライブのディレクトリにiconvのdllをコピーした後に
$ wine a.exe ; echo '$? = ' $?
$? = 0
としてエラーなく終了しました。正常だと判断しました。
このtest.cのコンパイルオプションを一部省略すると、
$ i686-w64-mingw32-gcc -v test.c -I$HOME/mingw/include 2>&1 |tail -5
/usr/lib/gcc/i686-w64-mingw32/4.6/collect2 -m i386pe -Bdynamic
/usr/lib/gcc/i686-w64-mingw32/4.6/../../../../i686-w64-mingw32/lib/../lib/crt2.o
/usr/lib/gcc/i686-w64-mingw32/4.6/crtbegin.o
-L/usr/lib/gcc/i686-w64-mingw32/4.6
-L/usr/lib/gcc/i686-w64-mingw32/4.6/../../../../i686-w64-mingw32/lib/../lib
-L/usr/lib/gcc/i686-w64-mingw32/4.6/../../../../i686-w64-mingw32/lib
/tmp/ccswfOrK.o -lmingw32 -lgcc_eh -lgcc -lmoldname -lmingwex -lmsvcrt
-ladvapi32 -lshell32 -luser32 -lkernel32 -lmingw32 -lgcc_eh -lgcc -lmoldname
-lmingwex -lmsvcrt /usr/lib/gcc/i686-w64-mingw32/4.6/crtend.o
/tmp/ccswfOrK.o:test.c:(.text+0x1e): undefined reference to `_libiconv_open'
/tmp/ccswfOrK.o:test.c:(.text+0x4e): undefined reference to `_libiconv'
/tmp/ccswfOrK.o:test.c:(.text+0x5a): undefined reference to `_libiconv_close'
collect2: ld はステータス 1 で終了しました
となり、config.logと同じようなエラーが得られました。
ここから、私なりに推測することは、"-L$HOME/mingw/lib -liconv"に相当するも
のが、configureのプロセスで欠如しているということなのですが、上記の
config.logには「-L/home/hoge/mingw/lib」や「-liconv」がありますし、具体的
にどのように解決すればよいか、アプローチが思い浮かびません。
ヒントなどをいただけましたら幸いです。
_______________________________________________
Kakasi-dev mailing list
[email protected]
http://www.namazu.org/cgi-bin/mailman/listinfo/kakasi-dev