这是一个例子。成功编译:
> 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 include参数。仍然失败:
> 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
答案 0 :(得分:0)
经过几天毫无结果的研究并尝试调试代码后,我终于在此页面找到了答案:http://www.postgresql.org/docs/9.2/static/ecpg-preproc.html
我的问题是我的文件名用双引号括起来。来自文档:
但是当使用EXEC SQL INCLUDE“filename”时,只搜索当前目录。
我删除了双引号,一切都很好