[pgpool-general-jp: 68] Re: make 時に undefined reference to `PQprepare'

ISHIDA Akio iakio @ mono-space.net
2006年 12月 25日 (月) 18:22:53 JST


こんにちは。石田@苫小牧市です。

ちょうどMakefile.amで悩んでいたのと、手元に再現できる
環境があったので調べてみました。

$ gcc -v
/usr/lib/gcc-lib/i386-redhat-linux/3.2.3/specs から spec を読み込み中
コンフィグオプション: ../configure --prefix=/usr --mandir=/usr/share/man
--infodir=/usr/share/info --enable-shared --enable-threads=posix
--disable-checking --with-system-zlib --enable-__cxa_atexit
--host=i386-redhat-linux
スレッドモデル: posix
gcc バージョン 3.2.3 20030502 (Red Hat Linux 3.2.3-52)


エラー時に実行しているコマンド自体は、動くケースと
エラーになるケースで一緒のようです。

make[2]: 入ります ディレクトリ `/home/ishida/src/pgpool-II-1.0.1'
/bin/sh ./libtool --mode=link gcc  -g -O2   -o pgpool -lpq
-Wl,-L,/home/ishida/pgsql814/lib -Wl,-rpath,/home/ishida/pgsql814/lib
main.o child.o pool_auth.o pool_config.o pool_error.o
pool_process_query.o pool_stream.o pool_connection_pool.o
pool_params.o pool_signal.o pcp_child.o md5.o pool_shmem.o pool_sema.o
pool_system.o pool_rewrite_query.o pool_rewrite_outfuncs.o
pool_query_cache.o parser/libsql-parser.a pcp/libpcp.la -lresolv -lnsl
-lm
gcc -g -O2 -o .libs/pgpool -Wl,-L -Wl,/home/ishida/pgsql814/lib
-Wl,-rpath -Wl,/home/ishida/pgsql814/lib main.o child.o pool_auth.o
pool_config.o pool_error.o pool_process_query.o pool_stream.o
pool_connection_pool.o pool_params.o pool_signal.o pcp_child.o md5.o
pool_shmem.o pool_sema.o pool_system.o pool_rewrite_query.o
pool_rewrite_outfuncs.o pool_query_cache.o  -lpq
parser/libsql-parser.a pcp/.libs/libpcp.so -lresolv -lnsl -lm
-Wl,--rpath -Wl,/usr/local/lib
pool_system.o(.text+0x86b): In function `pool_get_id':
/home/ishida/src/pgpool-II-1.0.1/pool_system.c:359: undefined
reference to `PQexecPrepared'

で、最後の libtool の引数で
-Wl,-L,/home/ishida/pgsql814/lib
を
-L/home/ishida/pgsql814/lib
と、-Wlを取ってやると動くようです。

libtoolのmanを見たかんじでも、Makefile.amの
pgpool_LDFLGS には -Wl はいらなさそうです。

# ですが、その環境にautomakeがはいっていないので
# 確認はできていません。

06/12/25 に Yoshiyuki Asaba<y-asaba @ sraoss.co.jp> さんは書きました:
> 浅羽です。
>
> From: Kenichi Harada <mxj00516 @ nifty.com>
> Subject: [pgpool-general-jp: 66] Re: make 時に undefined reference to `PQprepare'
> Date: Mon, 25 Dec 2006 15:54:52 +0900 (JST)
>
> > 結局、インストールできた他のサーバーの環境と比較したところ、元のサーバーは gcc
> >  が ver.3系列でしたので、これを gcc ver.4.1.1 にしましたところ、インストールで
> > きました。
> > お騒がせいたしました。
>
> 報告ありがとうございます。gcc4 では通りましたか…。実は Mac OS などで
> もビルドできないという現象も報告されているので、configure.in と
> Makefile.am の書き方を間違えているかもしれません。少し調査してみます。
>
> --
> Yoshiyuki Asaba
> y-asaba @ sraoss.co.jp
>
> > 原田
> >
> > ----- Original Message -----
> > | From: pgpool-general-jp-request @ sraoss.jp
> > | 浅羽です。
> > |
> > | From: Kenichi Harada <mxj00516 @ nifty.com>
> > | Subject: [pgpool-general-jp: 60] make 時に undefined reference to `PQprepare
> > '
> > | Date: Thu, 14 Dec 2006 13:29:45 +0900 (JST)
> > |
> > | > はじめまして。原田と申します。
> > | >
> > | > pgpool-II 評価のためにインストールしようとしたのですが、以下のエラーを出力
> > して
> > | >  make が失敗します。なかなか解決できませんので、皆様のお知恵を拝借したく存
> > じま
> > | > す。
> > | >
> > | > > pool_system.o(.text+0x8ab): In function `pool_get_id':
> > | > > /home/postgres/work/pgpool-II-1.0.1/pool_system.c:420: undefined referen
> > ce t
> > | > o `PQprepare'
> > | > > pool_query_cache.o(.text+0x112f): In function `pool_query_cache_register
> > ':
> > | > > /home/postgres/work/pgpool-II-1.0.1/pool_query_cache.c:948: undefined re
> > fere
> > | > nce to `PQprepare'
> > | > > collect2: ld returned 1 exit status
> > | > > make[2]: *** [pgpool] エラー 1
> > | > > make[2]: Leaving directory `/home/postgres/work/pgpool-II-1.0.1'
> > | > > make[1]: *** [all-recursive] エラー 1
> > | > > make[1]: Leaving directory `/home/postgres/work/pgpool-II-1.0.1'
> > | > > make: *** [all] エラー 2
> > | >
> > | > ./configure では、
> > | >
> > | > > checking for PQprepare in -lpq... yes
> > | >
> > | > となっています。
> > |
> > | うーむ…。
> > |
> > |   % grep pgpool_LDFLAGS Makefile
> > |
> > | を実行していただけないでしょうか?
> > _______________________________________________
> > pgpool-general-jp mailing list
> > pgpool-general-jp @ sraoss.jp
> > http://www.sraoss.jp/mailman/listinfo/pgpool-general-jp
> >
> _______________________________________________
> pgpool-general-jp mailing list
> pgpool-general-jp @ sraoss.jp
> http://www.sraoss.jp/mailman/listinfo/pgpool-general-jp
>


-- 
ISHIDA Akio <iakio @ mono-space.net/ishida @ cycleof5th.com>


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