2012-04-11 675 views
2

Oracle Pro * Cを使用するように変換されている既存のプログラムが、プリコンパイル時に問題を引き起こしています。ファイルシステムからファイルを読み取り、解析し、いくつかのデータベーステーブルに書き込みます。Oracle Pro * Cプリコンパイラ・エラーPCC-S-02201

次のように定義された方法があります:私はそれを作るしようとすると

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, 

この関数の宣言は、私の知る限り構文的に正しいので、このプリコンパイラ・エラーは、別の場所で問題が発生していると想定しなければなりません。

ここでプログラム全体を貼り付けるのは簡単ではありませんが、誰かが私が探し始めることができるいくつかの良い場所についての提案はありますか?

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__ 
+0

ラクダの息子。これは決して私には起こりませんでした。私は30分を仕事に戻して、それがこの全部を修正するかどうかを知るために半分誘惑されている。私はしません!しかし、私は誘惑される。 –

答えて

4

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

私pcscfg.cfgは、このようになります。

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

+0

最も奇妙なことは、これがIngres組み込みCプログラムとしてコンパイルされることです。ちょうどPro * Cプログラムではありません。それにもかかわらず、 'inline'を 'inp_line'に変更し、プリコンパイルしてコンパイルしました。ありがとう! –

+0

さて、 'inline'はクールな新作ですが、C99のキーワードとして追加されました。 C89はそれを持っていなかった:) – Mat

+0

ええ - あなたが推測するかもしれないが、このものは_old_です。 –

関連する問題