「覚え間違い」を教えてください!

PostgreSQL 8.4.8 文書にのっているサンプルプログラムの
例 30-1. libpq サンプルプログラム 1
#include <stdio.h>
#include <stdlib.h>
#include "libpq-fe.h"
・・・・・・・・・・・・・

をコピペしてコンパイルしたところ次のようなエラーがでました
# gcc sample.c
/tmp/cctZBolQ.o: In function `exit_nicely':
sample.c:(.text+0xd): undefined reference to `PQfinish'
/tmp/cctZBolQ.o: In function `main':
sample.c:(.text+0x4a): undefined reference to `PQconnectdb'
sample.c:(.text+0x5a): undefined reference to `PQstatus'
sample.c:(.text+0x6a): undefined reference to `PQerrorMessage'
sample.c:(.text+0xa5): undefined reference to `PQexec'
sample.c:(.text+0xb5): undefined reference to `PQresultStatus'
sample.c:(.text+0xc6): undefined reference to `PQerrorMessage'
sample.c:(.text+0xed): undefined reference to `PQclear'
sample.c:(.text+0x105): undefined reference to `PQclear'
sample.c:(.text+0x119): undefined reference to `PQexec'
sample.c:(.text+0x129): undefined reference to `PQresultStatus'
sample.c:(.text+0x13a): undefined reference to `PQerrorMessage'
sample.c:(.text+0x161): undefined reference to `PQclear'
sample.c:(.text+0x179): undefined reference to `PQclear'
sample.c:(.text+0x18d): undefined reference to `PQexec'
sample.c:(.text+0x19d): undefined reference to `PQresultStatus'
sample.c:(.text+0x1ae): undefined reference to `PQerrorMessage'
sample.c:(.text+0x1d5): undefined reference to `PQclear'
sample.c:(.text+0x1ed): undefined reference to `PQnfields'
sample.c:(.text+0x20f): undefined reference to `PQfname'
sample.c:(.text+0x26b): undefined reference to `PQgetvalue'
sample.c:(.text+0x2a8): undefined reference to `PQntuples'
sample.c:(.text+0x2ba): undefined reference to `PQclear'
sample.c:(.text+0x2ce): undefined reference to `PQexec'
sample.c:(.text+0x2de): undefined reference to `PQclear'
sample.c:(.text+0x2f2): undefined reference to `PQexec'
sample.c:(.text+0x302): undefined reference to `PQclear'
sample.c:(.text+0x30e): undefined reference to `PQfinish'
collect2: ld はステータス 1 で終了しました
#

# find /usr/include/ -name libpq*.h
/usr/include/pgsql/internal/libpq-int.h
/usr/include/pgsql/server/libpq/libpq-be.h
/usr/include/pgsql/server/libpq/libpq.h
/usr/include/pgsql/server/libpq/libpq-fs.h
/usr/include/libpq/libpq-fs.h
/usr/include/libpq-events.h
/usr/include/libpq-fe.h

# gcc -I/usr/include sample.c
でもおなじです

どうすればコンパイル出きるようになるでしょうか?

よろしくお願いします

A 回答 (1件)

># gcc sample.c


># gcc -I/usr/include sample.c

ライブラリの指定がないみたいですが……環境変数とかで指定しているのでしょうか?

「PostgreSQL libpq gcc」で検索して適当に見つかるページですが…
http://www.fireproject.jp/feature/postgresql/pro …
より…
>これをコンパイルするには,ヘッダとライブラリの指定が必要である.
>gcc -I/usr/include/postgresql/ -lpq connect.c

ということで、-lpqも必要かと思われますがいかがでしょう?
    • good
    • 0
この回答へのお礼

ありがとうございます

# gcc -lpq sample.c

とすれば動きました

お礼日時:2011/09/08 10:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す


おすすめ情報