包含文件中的EXEC SQL语句上的Oracle Pro * C预编译器错误

时间:2011-10-05 15:08:34

标签: oracle oracle-pro-c

我正在将一些遗留代码转换为Oracle Pro * C.我在使用Oracle 11.2的Linux机器上。我们使用“.cp”作为Pro * C源文件的后缀。我不是一个C开发人员,所以当我走的时候,我就像是在黑暗中徘徊。

有一次我在共享库文件中有一些代码,“assign_field.cp”,所以在myprog.cp中我正在做

EXEC SQL INCLUDE "assign_field.cp";

现在,在assign_field.cp中,我有一个非常常见的Pro * C代码行......

EXEC SQL INCLUDE SQLCA;

对于这一行,以及许多其他,我看到以下编译器输出:

assign_field.cp:35: error: expected â=â, â,â, â;â, âasmâ or â__attribute__â before âSQLâ

看起来好像编译器没有意识到这是Pro * C代码。

我有其他包含文件,看起来与assign_field.cp非常相似,但在包含时似乎编译得很好。

1 个答案:

答案 0 :(得分:1)

不要在程序的流程中包含C文件(在本例中为.cp文件)。单独编译;仅参考函数的声明,例如在包含的.h文件中。请参阅makefile中对链接器的调用中的编译目标文件(可能是.o)。