0

..私は動的にロードするためのユーザ定義のC関数を追加したい9.4.8


のPostgreSQL 9.4
libpgを発行します。
私は仕様に従って、私のCファイルおよびSQL関数ファイルの準備ができているが、主な問題は、Cファイルは、私は、デスクトップ上の私のフォルダを持っていますが、何のpostgers.hはありません。..

PostgreSQLユーザ定義のC関数は、私はapt-getのコマンドを使用して、私のUbuntu 14.04にPostgreSQLのインストールされている

 

    #include "postgres.h" 
    #include <string.h> 
    #include "fmgr.h" 

のようなヘッダー行が含まれていることですまたはfmgr.hファイル..
私はコマンドをコンパイルし実行した場合、それは

postgres_ext.h:47:9: error: unknown type name 'PG_INT64_TYPE'<br> 
typedef PG_INT64_TYPE pg_int64; 
を示して私のシステム上のソースファイルを検索する場所を知っているが、私はgitのから全体のソースをダウンロードし、同じフォルダに追加した。..
いけません



私はどこから起動するのかわかりません。私は自分のファイルをpostgresディレクトリに置き、ソースファイルをコンパイルまたはダウンロードするのは正しいオプションですか?エラーと何をする..?助けてください..事前に多くのおかげです。

答えて

1

Use PGXS to compile your code as an extension by writing a simple Makefile

これにより、インクルードパス、ライブラリパスなどが設定され、正しいコンパイラフラグが提供されます。

基本的なCの関数を記述したチュートリアルと同じドキュメントで説明しています。

+0

あなたの答えはありがとうございました。同じことを試しました。次のエラーが発生しました。 /usr/src/postgres-master/src/include/postgres_ext.h:47:9:エラー:不明なタイプ名 'PG_INT64_TYPE' –

+0

/usr/src/postgres-master/src/include/ch:66:72:致命的なエラー:pg_config_os.h:そのようなファイルまたはディレクトリがありません コンパイルが終了しました。 –

+0

正確に何をしたのか、どのようにインストールしたのか分かりません。何が起こっているのかが分かりません。あなたのOS /ディストリビューション用のpostgresql develパッケージをインストールする必要があります。 –

関連する問題