0

一部のレガシー コードを Oracle Pro*C に変換しています。Oracle 11.2 を使用している Linux ボックスを使用しています。Pro*Cソース・ファイルの接尾辞として「.cp」を使用しています。私はあまり 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 ファイルなど、関数の宣言のみを参照してください。メイクファイルのリンカーへの呼び出しで、コンパイルされたオブジェクト ファイル (おそらく .o) を参照します。

于 2011-10-05T18:39:07.810 に答える