1

の検索に関する以前の質問pg_configに続いて/src/tutorial、コンパイルするサブディレクトリを取得するのにまだ苦労しています。

Windows 7 で cygwin を実行しています。これは理想的な環境ではありませんが、Windows ベースのインターフェイスを使用するこのバージョンで作成された PostgreSQL 拡張機能を取得しようとしています。実行できるようになったら、Linux とより優れた PostgreSQL に移行します。

問題に戻る:

make on を実行すると、次のようになりました/src/tutorial。ディレクトリ内は何も変更していません。

$ make
dlltool --export-all --output-def complex.def complex.o
dllwrap -o complex.dll --def complex.def complex.o -L/usr/lib -lpostgres -L/usr/                                                                                                              lib -lpostgres
rm -f complex.def
gcc -O2 -pipe  -Wall -Wmissing-prototypes -Wpointer-arith -Winline -Wdeclaration                                                                                                           -after-statement -Wendif-labels -fno-strict-aliasing -fwrapv  -I. -I/usr/include                                                                                                                  /postgresql/server -I/usr/include/postgresql/internal   -c -o funcs.o funcs.c
funcs.c:19:1: warning: ‘Pg_magic_func’ redeclared without dllimport attribute: p                                                                                                                 revious dllimport ignored
funcs.c: In function ‘copytext’:
funcs.c:74:2: warning: implicit declaration of function ‘SET_VARSIZE’
dlltool --export-all --output-def funcs.def funcs.o
dllwrap -o funcs.dll --def funcs.def funcs.o -L/usr/lib -lpostgres -L/usr/lib -l                                                                                                                 postgres
funcs.o:funcs.c:(.text+0xb6): undefined reference to `_SET_VARSIZE'
funcs.o:funcs.c:(.text+0x142): undefined reference to `_SET_VARSIZE'
collect2: ld returned 1 exit status  
dllwrap: gcc exited with status 1

funcs に含める必要がある正しいヘッダー ファイルが何かわかりません。

このエラーは、パッチが適用されていない 8.3.1 で発生します。

ありがとう

編集

インストールで上記の問題が発生しました。/src/tutorial実行中の Makefile

PG_CONFIG = pg_config
PGXS := $(shell $(PG_CONFIG) --pgxs)

そして私の不運のために、私pg_configのもの以外に別のものがありましたinstallation-folder/bin

それで、私がそれを修正したら、すべてが/src/tutorial正常に構築されました

4

1 に答える 1

0

コメントで述べたように、今回は間違ったバージョンの余分な pg_config が原因でした。これが間違ったバージョンの唯一の側面ではない可能性があります。使用されている古いヘッダー ファイルが近位の原因であり、pg_config が古いヘッダー ファイルに向けられていた可能性があります。

一般に、ここで行うべき正しいことは、2 つのファイルのすべてのバージョンを見つけて、どちらが使用されているかを判断することです。これらのファイルは次のとおりです。

  1. pg_config

  2. postgres.h

これが完了すると、どれを削除するか、またはスクリプトが見つけられる場所から移動するかを決定するのは簡単なパターンになります。

于 2013-04-13T03:35:46.903 に答える