2

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__
4

1 に答える 1

5

inlineは C および C++ のキーワードであるため、その宣言は無効です (また、C では関数指定子としてのみ使用できます)。

その変数名を別の名前に変更します。C++ ではなく C としてコンパイルしている場合は、それが実行されるはずです。関数定義構文のスタイルが C++ で受け入れられるとは思えません。

于 2012-04-12T16:56:37.547 に答える