1

多くのマクロを含む C コードをデバッグする必要がありますが、それらのマクロの多くは些細なものではなく、いくつかの (多くの) 行が含まれています。マクロは 1 行で展開され、どこでエラーが発生したのかがわからないため、デバッグが不可能になります。一方、sedプリプロセッサの出力を取得して、各セミコロンの後に行を追加するのは簡単です。

このようなマクロを使用するための適切な方法については説明しません。しかし、前処理とコンパイルの間にステージをコンパイラー (icc、gcc、xlc のいくつかのコンパイラーを使用) に追加できるかどうかを知りたいので、そのsedコマンドを実行します。

4

3 に答える 3

0

独自の「コンパイラ」を実行するスクリプトとして定義しg++ -E、次にsed-mangler、次にを定義し、それg++をコンパイラ全体として指定します。の礼儀で一時的なものを使用するように注意してmktempください。そのため、コンパイルを並行して開始しても ( make -j)、混乱することはありません。

(今日の GCC には別個の前処理ステップがもうないため、そこに何かを注入することはとにかく簡単にはできません。)

于 2013-04-12T18:11:03.983 に答える
0

ここまでで、この投稿で見つけたものを試してみます。単一のファイルをコンパイルするためのラッパーのオプションも試してみましたが、今のところうまくいきます。ラッパーでは、ファイルを (-E を使用して) 前処理し、前処理されたファイルをsedいくつかのルールで処理してから、コンパイルします。

于 2013-04-11T14:39:23.923 に答える