我正在将一些遗留代码转换为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非常相似,但在包含时似乎编译得很好。
答案 0 :(得分:1)
不要在程序的流程中包含C文件(在本例中为.cp文件)。单独编译;仅参考函数的声明,例如在包含的.h文件中。请参阅makefile中对链接器的调用中的编译目标文件(可能是.o)。