#warning ディレクティブを含む *.pc ファイルをプリコンパイルしようとすると、次のエラーが表示されます。
PCC-S-02014、次のいずれかを予期しているときに、シンボル「警告」が発生しました: (bla bla bla)。
どうすればよいかわからない場合に、Pro*C がそのことを無視するようにどうにか説得できますか? #warning
ディレクティブは、変更できず、インクルードする必要があるヘッダー ファイルで使用されているため、削除できません。
#warning ディレクティブを含む *.pc ファイルをプリコンパイルしようとすると、次のエラーが表示されます。
PCC-S-02014、次のいずれかを予期しているときに、シンボル「警告」が発生しました: (bla bla bla)。
どうすればよいかわからない場合に、Pro*C がそのことを無視するようにどうにか説得できますか? #warning
ディレクティブは、変更できず、インクルードする必要があるヘッダー ファイルで使用されているため、削除できません。
『Pro*C/C++ Programmer's Guide』 (第 5 章「高度なトピック」) によると、Pro*C は #error や #pragma などの多くのプリプロセッサ ディレクティブを黙って無視しますが、残念ながら #warning は無視しません。警告ディレクティブはヘッダー ファイルに含まれているため、ORA_PROC マクロを使用できる場合があります。
#ifndef ORA_PROC
#include <irrelevant.h>
#endif
ただし、何らかの理由で、そのまま #warning を非表示にしようとすると、Pro*C でエラーが発生します。
parse=none
procでオプションを使用
できません。Pro*C は #if と #include のみを認識します。私の最善のアドバイスは、ビルド プロセスの一部としてファイルを前処理して、Pro*C が好まないものを削除することです。何かのようなもの
grep -v -E '^#(warning|pragma|define)' unchangeable.h >unchangeable.pc.h
私の他のアドバイスは、Pro*C である忌まわしきものを避けることですが、あなたはそれに行き詰まっていると思います...
ジョンズ・エリクソンの答えは正しいです。
そのトリックを使用する必要がある 2 つ目の状況があります。
Pro*c の一部のバージョンでは、ファイル拡張子のないインクルード ファイルを処理できません。
ORA_PROC 定数も、この問題に対する有効な解決策の 1 つです。
/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 のエラー
.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 の前処理中に致命的なエラーが発生しました
/usr/include/standards.h から以下の 2 行を削除します
変更し/usr/include/standards.h
ます。
行を削除します。proc は,justなど#warning The -qdfp option is required to process DFP code in headers.
をサポートしていません。#warning
#else
#if