0

Debian スクイーズに Poststat をインストールしようとしています。 http://poststat.projects.postgresql.org このプロジェクトはそれほど古いもの (2008 年) ではないように見えますが、インストールするのに苦労しています。本当に面白いプロジェクトのようですが、Google は空っぽです。ここで私がしたことを要約します(postgres 8.4がインストールされています):

apt-get install fort77 postgresql-server-dev-8.4 libblas-dev liblapack-dev gfortran

まず、公式サイトにあるように、tar.gz を解凍し、ディレクトリ f77stat に移動して「make」します。

次に、libpq-dev がインストールされている場合、debian スクイーズでは、/usr/bin/ に独自の pg_config もインストールされ、誤った情報が報告されます。( http://postgresql.1045698.n5.nabble.com/Bug-report-Wrong-version-in-pg-config-td2123792.htmlを参照) 1 つの解決策:

 mv /usr/bin/pg_config pg_config_bak
 ln -s /usr/lib/postgresql/8.4/bin/pg_config pg_config

Poststat の makefile は pg_config で情報を取得しているため、これは重要です。

次に、メインの Makefile に次の行があります。

-lblas -llapack -lg2c

blas と lapack のパッケージをインストールします。

apt-get install libatlas-base-dev libatlas-dev libatlas-doc libatlas3gf-base

今私の問題はg2cについてです。Google によると、g2c は廃止されているため、Makefile を編集して -lg2c を -lgfortrant に置き換えました。

最後のステップ: データベースに新しい統計関数をコンパイルしてインポートします。

make && sudo make install
psql -f poststat.sql <database>

悲しいことに、

psql:poststat.sql:18: ERROR: unable to load the library 
 « /usr/lib/postgresql/8.4/lib/poststat.so » : /usr/lib/postgresql/8.4/lib/poststat.so:
undefined symbol: s_stop

何か考えはありますか?fortran は私の世界ではなく、debian では fortran についてパッケージが大幅に変更されているようです。-lg2c から -lgfortrant への切り替えはおそらく間違っています。実際、このインクルードを削除すると、最後に同じエラーが発生します。

4

2 に答える 2

1

libg2c は g77 (http://stackoverflow.com/questions/2406581/what-is-libg2c-library) に属していますが、これは廃止されて長年サポートされていません。最新のコンパイラに切り替えるには、このライブラリを置き換えるだけではありません。gfortran などのコンパイラも置き換える必要があります。FORTRAN 77 コードをコンパイルできるようにするには、gfortran のデフォルトのコンパイラ オプションを変更する必要がある場合があります。私が使用するもの: -O2 -固定フォーム -固定行の長さ-なし。gfortran をリンカーとして使用する場合、fortran ランタイム ライブラリを明示的に含める必要はありません。

于 2012-04-22T19:34:18.520 に答える
0

-lg2c を -lf2c で変更

最後に poststat.c に追加します

int MAIN__(){
   return (0);
}
于 2012-04-22T22:18:16.523 に答える