[pgsql-jp: 36784] Re: PGNamazuをコンパイル後、CREATE FUNCTION時にエラー(could not load library)

Aoi OGAWA a-ueba @ crc.co.jp
2006年 2月 28日 (火) 10:02:51 JST


おがわあおい@CRCです。

引用順が時系列になっておりせんが、ご容赦ください。

┌───────────────────────────────────
│■□ "SHIRASAWA, Jun" <jshira @ rouge.plala.or.jp> さまから
│□■ 2006/02/27 17:01:07 ごろいただいた
│■□ [pgsql-jp: 36780] Re:PGNamazuをコンパイル後、CREATE FUNCTION時にエラー(could not load library) からの引用です。
└───────────────────────────────────

> pgnmz.so は見つかったけど、それが依存している libiconv が見
> つからないのでしょう。libiconv が RedHat でパッケージになっ
> てるかどうかは判りません(手持ちの CD-ROM には見当たらなかっ
> た)が、なければソースから作るという手もあります。以下から入
> 手できます:
> 
>   http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.9.1.tar.gz

白崎様、情報ありがとうございます。

まず、libiconvが存在するか確認しました。
find / -name libiconv*
では、該当するライブラリが見つかりませんでしたが、ソースは見つけ
られました。

バージョンは、1.9.2でしたが、これをコンパイルし、/usr/local/lib 
にインストールしました。

念のため、
ldconfig
ldconfig -p | grep libiconv
でlibiconvがあることを確認し、
pg_ctl restart
の後、DBに接続して先のクエリを流してみましたが、

RROR:  XX000: could not load library "/usr/local/pgsql/lib/pgnmz.so": /usr/local/pgsql/lib/pgnmz.so: undefined symbol: libiconv_open
LOCATION:  load_external_function, dfmgr.c:136

と、変わりませんでした。

┌───────────────────────────────────
│■□ Takao Kato <sirius @ jp.fujitsu.com> さまから
│□■ 2006/02/27 16:58:40 ごろいただいた
│■□ [pgsql-jp: 36779] Re: PGNamazuをコンパイル後、CREATE FUNCTION時にエラー(could not load library) からの引用です。
└───────────────────────────────────

> > ERROR:  XX000: could not load library "/usr/local/pgsql/lib/pgnmz.so": 
> >   /usr/local/pgsql/lib/pgnmz.so:undefined symbol: libiconv_open 
>                                                     ~~~~~~~~~~~~~
> と言っているので pgnmz.so から libiconv.so を参照してませんか?
> pgnmz.so生成時にlibiconv.aとかでスタティックライブラリとして収容すれば
> 問題解決しそうな。。。気もします(汗)。

加藤様、情報ありがとうございます。

上記でライブラリの追加だけではダメでしたので、Makefile に 
libiconv.soを追加し、pgnmd.so を Makeしなおしました。

lpconfig  (念のため)
pg_ctl restart (念のため)
後、DBに接続し、先のクエリを流したところ、

CREATE FUNCTION

という結果が返って来ました。(喜)

おふたりのおかげで無事解決いたしました。
ありがとうございました。
-- 
CRC Solutions Corp. QC1
Aoi OGAWA <a-ueba @ crc.co.jp>




pgsql-jp メーリングリストの案内