1
all、 PostgreSQL 9.6に対して次のCスケルトンをコンパイルしようとしています。PostgreSQL 9.6 C関数コンパイルエラー:elog.h:unknown type 'sigjmp'
#include "postgres.h"
#include "fmgr.h"
#include "miscadmin.h"
#ifdef PG_MODULE_MAGIC
PG_MODULE_MAGIC;
#endif
PG_FUNCTION_INFO_V1(calculateValHash);
Datum calculateValHash(PG_FUNCTION_ARGS) {
text *t = PG_GETARG_TEXT_P(0);
if (t) {
PG_RETURN_INT32(12);
} else {
PG_RETURN_INT32(1);
}
}エラーと
次のgccコマンドが返す:
gcc -shared -I/usr/include/postgresql/9.6/server -lpq -o ./_build/magick.so pgmagick.c -std=c99 -Wall -Wextra
In file included from /usr/include/postgresql/9.6/server/postgres.h:48:0,
from pgmagick.c:1:
/usr/include/postgresql/9.6/server/utils/elog.h:318:20: error: unknown type name ‘sigjmp_buf’
extern PGDLLIMPORT sigjmp_buf *PG_exception_stack;
^
OS:Ubuntuの16.04.1 LTS は、私は、PostgreSQLサーバ-DEV-9.6もインストールされています。
あなた自身のgccコマンドを書く必要はありません。[PGXS](https://www.postgresql.org/docs/current/static/extend-pgxs.html)で、すべての面倒な詳細について心配する必要はありません。最小のPGXSメークファイルの例をここで見つけることができます:http://stackoverflow.com/a/38222564 –
答えを受け入れるには、以下の答えの隣のチェックマークをクリックしてください。私たちは解決策や[解決済み]マークを質問に追加しません。 – halfer