1
ecpg可以从包含源的目录运行,但不从任何其他目录运行时可以找到EXEC SQL INCLUDE头文件。ecpg无法找到包括,除非从包含源文件的目录执行
下面是一个例子。成功编译:
> 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
你的榜样为我工作。 –
我很困惑从哪里去。我尝试了很多变化。我尝试下载源代码并进行调试,但我无法进入似乎在共享对象中的相关目标代码。我知道我之前已经调试过共享目标代码,所以它不应该很难。很明显,-v选项表示包含路径是正确的。编译后的源代码的行为与我当前的安装完全相同。它正在使用所有的默认路径。但是当它移动到非默认路径时,它拒绝找到我的头文件。 – kithril