gpt4 book ai didi

postgresql - ecpg 找不到包含,除非从包含源文件的目录执行

转载 作者:行者123 更新时间:2023-11-29 14:01:04 25 4
gpt4 key购买 nike

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

最佳答案

经过几天无果的研究和调试代码的尝试,我终于在这个页面上找到了答案:http://www.postgresql.org/docs/9.2/static/ecpg-preproc.html

我的全部问题是我将文件名用双引号括起来了。来自文档:

But when EXEC SQL INCLUDE "filename" is used, only the current directory is searched.

我去掉了双引号,一切正常

关于postgresql - ecpg 找不到包含,除非从包含源文件的目录执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17647090/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com