0

オプションを指定して実行しているときに、#errorが見つかったときにGCCのプリプロセッサを停止させる方法はあります-Eか?

たとえば、次のプログラムでは次のようになります。

#errorここで停止
int main(){
  0を返します。
}

このプログラムで実行gccすると、1行目でコンパイルが中断されますが、実行gcc -Eすると同じ行が出力され、前処理が続行されます。

注:私の質問はコンパイルを停止するGCC #pragmaに似ていますが、フラグに関するもの-Eなので、両方をマージする必要がありますか?

4

1 に答える 1

1

簡単な答えはノーです。プロセッサディレクティブ(例:#error)は、コンパイラにコマンドを与えるために使用されます。-Eオプションを使用すると、コンパイラーは実行されないため、停止する理由はありません。-Eフラグは、実際にコンパイルせずに、プログラムでコンパイルされるすべてのコードを出力するように設計されています。

于 2013-03-26T17:37:16.303 に答える