0

我正在将一些遗留代码转换为 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 非常相似,但在包含时似乎编译得很好。

4

1 回答 1

1

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

于 2011-10-05T18:39:07.810 回答