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