【问题标题】:Oracle Pro*C Precompiler error PCC-S-02201Oracle Pro*C 预编译器错误 PCC-S-02201
【发布时间】:2012-04-11 20:16:38
【问题描述】:

正在转换为使用 Oracle Pro*C 的现有程序在预编译时会导致问题。它从文件系统中读取一个文件,对其进行解析,然后写入几个数据库表。

有一个方法的定义如下:

void parse_line(inline)
char *inline;
{
// do stuff
}

当我尝试成功时,我看到了:

Syntax error at line 162, column 13, file myfile.cp:
Error at line 162, column 13 in file myfile.cp
char *inline;
............1
PCC-S-02201, Encountered the symbol ";" when expecting one of the following:

   ( * const, volatile, an identifier,

据我所知,这个函数声明在语法上是正确的,所以我必须假设这个预编译器错误是由于其他地方的问题而出现的。

这里没有粘贴整个程序,有人对我可以开始寻找的几个好地方有任何建议吗?

我的 pcscfg.cfg 如下所示:

sys_include=($ORACLE_HOME/precomp/public,/usr/include,/usr/lib/gcc-lib/x86_64-redhat-linux/3.2.3/include,/usr/lib/gcc/x86_64-redhat-linux/4.1.1/include,/usr/lib64/gcc/x86_64-suse-linux/4.1.2/include,/usr/lib64/gcc/x86_64-suse-linux/4.3/include)
ltype=short
define=__x86_64__

【问题讨论】:

  • 骆驼之子。我从来没有想到过。我很想开车半小时回去工作,看看这是否能解决整个问题。我不会!但我很受诱惑。

标签: c++ oracle oracle-pro-c


【解决方案1】:

该声明无效,因为inline 是 C 和 C++ 中的关键字(并且只能用作 C 中的函数说明符)。

将该变量名称更改为其他名称,并且应该通过 if 您正在编译为 C 而不是 C++。我不相信函数定义语法的风格在 C++ 中是可以接受的。

【讨论】:

  • 最奇怪的是它编译为 Ingres 嵌入式 C 程序。只是不像 Pro*C 程序。尽管如此——将'inline'更改为'inp_line',我们预编译和编译得很好。谢谢!
  • 嗯 inline 是很酷的新东西,只是在 C99 中作为关键字添加。 C89 没有 :)
  • 是的 - 正如您可能猜到的那样,这些东西是旧的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-28
  • 2019-08-18
相关资源
最近更新 更多