[pgsql-jp: 28035] AIX&unixODBCでエラー
Shigeyuki Sakurai
hmc-sakurai @ milan.nri.co.jp
2002年 11月 20日 (水) 10:28:41 JST
はじめまして桜井と申します.
AIX上で,ODBCドライバマネージャにunixODBCを使い,PostgreSQLに
ODBCアクセスを試みていますが,libpsqlodbc.soのロードでエラーが
発生しています.
調べているのですが,どうもよくわかりません.
原因など知っておられる方が居ましたらご教授お願いいたします.
■環境
・OS: AIX5L(AIX4.3でも同様でした)
・CC: gcc-2.9.aix43.010216-1.aix5.1.ppc.rpm
・unixODBC: 2.2.3
・PostgreSQL: 7.2.3
・odbc.ini: ~/.odbc.ini
[ODBC Data Sources]
xxxDB = PostgreSQL
[xxxDB]
Driver = /usr/local/pgsql/lib/libpsqlodbc.so
Host = localhost
Servername = localhost
Database = xxxDB
ReadOnly = no
■ODBCプログラム
省略していますが,以下のようなものです.
SQLConnectでエラーとなります.
#include <sql.h>
#include <sqlext.h>
main()
{
HENV henv;
HDBC hdbc;
HSTMT hstmt;
SQLAllocEnv(&henv);
SQLAllocConnect(henv, &hdbc);
rc = SQLConnect(hdbc, "xxxDB", SQL_NTS, "postgres", SQL_NTS, "postgres", SQL_NTS);
if (rc != SQL_SUCCESS && rc != SQL_SUCCESS_WITH_INFO) {
// SQLError の情報を出力
}
}
■make
・PostgreSQL
% ./configure --enable-multibyte=EUC_JP --enable-odbc --with-CC=gcc
% gmake
・unixODBC
% ./configure --prefix=/home/postgres --enable-gui=no
% gmake
・サンプルプログラム
% gcc -g -O2 -o sample sample.c -I /home/postgres/include -L/home/postgres/lib -lodbc
■実行結果
01000(0)[unixODBC][Driver Manager]Can't open lib '/usr/local/pgsql/lib/libpsqlodbc.so' : 0509-130 以下の原因で
/usr/local/pgsql/lib/libpsqlodbc.so のシンボル解決が失敗しました:
0509-136 シンボル main (番号 63) は従属モジュール
sample1u からエクスポートされていません。
0509-192 .loader セクションのシンボルを
'dump -Tv' コマンドで調べてください。
上記のようにエラーとなってしまいます.
iODBCでも試しましたが,同様の結果となっています.
よろしくお願いいたします.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Shigeyuki Sakurai
pgsql-jp メーリングリストの案内