3

#warning ディレクティブを含む *.pc ファイルをプリコンパイルしようとすると、次のエラーが表示されます。

PCC-S-02014、次のいずれかを予期しているときに、シンボル「警告」が発生しました: (bla bla bla)。

どうすればよいかわからない場合に、Pro*C がそのことを無視するようにどうにか説得できますか? #warningディレクティブは、変更できず、インクルードする必要があるヘッダー ファイルで使用されているため、削除できません。

4

7 に答える 7

5

Pro*C/C++ Programmer's Guide』 (第 5 章「高度なトピック」) によると、Pro*C は #error や #pragma などの多くのプリプロセッサ ディレクティブを黙って無視しますが、残念ながら #warning は無視しません。警告ディレクティブはヘッダー ファイルに含まれているため、ORA_PROC マクロを使用できる場合があります。

#ifndef  ORA_PROC
#include <irrelevant.h>
#endif

ただし、何らかの理由で、そのまま #warning を非表示にしようとすると、Pro*C でエラーが発生します。

于 2008-08-22T21:44:00.983 に答える
2

parse=noneprocでオプションを使用

于 2010-10-12T03:25:49.750 に答える
0

できません。Pro*C は #if と #include のみを認識します。私の最善のアドバイスは、ビルド プロセスの一部としてファイルを前処理して、Pro*C が好まないものを削除することです。何かのようなもの

grep -v -E '^#(warning|pragma|define)' unchangeable.h >unchangeable.pc.h

私の他のアドバイスは、Pro*C である忌まわしきものを避けることですが、あなたはそれに行き詰まっていると思います...

于 2008-08-18T17:54:54.463 に答える
0

ジョンズ・エリクソンの答えは正しいです。

そのトリックを使用する必要がある 2 つ目の状況があります。

Pro*c の一部のバージョンでは、ファイル拡張子のないインクルード ファイルを処理できません。

ORA_PROC 定数も、この問題に対する有効な解決策の 1 つです。

于 2008-09-16T19:53:26.550 に答える
0

/bin/make -f /css/hwmig/pcprg/proc9i32.mk PROCFLAGS="sqlcheck=SEMANTICS userid=cssd/india09" PCCSRC=bic I_SYM=include= pc1 proc sqlcheck=SEMANTICS userid=cssd/india09 iname=bic include= . include=/oracle/Ora92/precomp/public include=/oracle/Ora92/rdbms/public include=/oracle/Ora92/rdbms/demo include=/oracle/Ora92/plsql/public include=/oracle/Ora92/network/public

Pro*C/C++: リリース 9.2.0.6.0 - 2008 年 12 月 2 日火曜日 14:05:38 の本番環境

Copyright (c) 1982, 2002, Oracle Corporation. 全著作権所有。

/oracle/Ora92/precomp/admin/pcscfg.cfg から取得したシステムのデフォルト オプション値

行 135、列 2、ファイル /usr/include/standards.h の構文エラー: ファイル /usr/include/standards.h の行 135、列 2 のエラー

警告 ヘッダー内の DFP コードを処理するには、-qdfp オプションが必要です。

.1 PCC-S-02014、次のいずれかを期待しているときに、シンボル「警告」に遭遇しました:

数値定数、改行、定義、elif、else、endif、エラー、if、ifdef、ifndef、include、line、pragma、undef、即時プリプロセッサ コマンド、C トークン、記号「改行」が「警告」に置き換えられました" 続ける。

行 30、列 7、ファイル bic.pc の構文エラー: ファイル bic.pc FILE fp の行 30、列 7 でエラーが発生しました。......1 PCC-S-02201、次のいずれかを期待しているときに、記号 " " が検出されました:

; , = ( [ 記号 ";" が "*" に置き換えられて続行されました。

ファイル bic.pc の行 0、列 0 でエラーが発生しました PCC-F-02102、C の前処理中に致命的なエラーが発生しました

于 2008-12-03T06:59:30.440 に答える
-1

/usr/include/standards.h から以下の 2 行を削除します

警告 ヘッダー内の DFP コードを処理するには、-qdfp オプションが必要です。

そうしないと

于 2009-06-26T21:47:16.443 に答える
-2

変更し/usr/include/standards.hます。
行を削除します。proc は,justなど#warning The -qdfp option is required to process DFP code in headers. をサポートしていません。#warning#else #if

于 2011-01-19T11:38:20.497 に答える