1

ecpg は、ソースを含むディレクトリから実行すると、EXEC SQL INCLUDE ヘッダー ファイルを正常に検出できますが、他のディレクトリからは検出できません。

これがイラストです。コンパイル成功:

> ecpg -o dbconnect.c dbconnect.pgc

インクルード パラメータが欠落しているため、失敗することが予想されます:

> cd ..
> ecpg -o src/dbconnect.c src/dbconnect.pgc
src/dbconnect.pgc:28: ERROR: could not open include file "vet_config.h" on line 28

ecpg インクルード パラメータを追加します。それでも失敗します:

> ecpg -I src -o src/dbconnect.c src/dbconnect.pgc 
src/dbconnect.pgc:28: ERROR: could not open include file "vet_config.h" on line 28

src ディレクトリへの絶対パスを指定してみました。改善なし。-o が必要ないことは承知しています。

PostgreSQL 9.2 を使用しています。ecpg のバージョン情報は次のとおりです。

> ecpg -v -I src -o src/dbconnect.c src/dbconnect.pgc 
ecpg, the PostgreSQL embedded C preprocessor, version 4.8.0
EXEC SQL INCLUDE ... search starts here:
 src
 .
 /usr/local/include
 /usr/pgsql-9.2/include
 /usr/include
end of search list
4

1 に答える 1