4

重複の可能性:
gcc プリプロセッサーの出力

何らかの理由で、g++ プリプロセッサによって生成されたいくつかの .i ファイルを調査する必要があります。ここには、次のようなコードが表示されます。

#1  /usr/local/include/boost/python.hpp 1 3
#11  /usr/local/include/boost/python.hpp 3

私は経験豊富な C++ プログラマーであり、.i ファイルが何であるかを知っています。問題は、.i ファイルの行を解釈する方法に関する詳細な説明が見つからないことです。

誰かが上記の行が何を意味するか (特にファイルに続く数字) を説明したり、これに関するドキュメントを見つけることができる場所を教えてもらえますか?


ありがとう、リンクを見た後、私の問題は解決しました。他の誰かが同じ問題を見た場合に備えて、背景を追加したいと思います。私のプロジェクトでは、g++ -Wall -Werror などの厳密なコンパイラ チェックを使用しています。すべての警告はエラーとして扱われます。そして、boost.python を使用しています。昨日まで、boost は /usr/local/include に配置されており、コンパイルは問題ありません。次に、アップグレードを容易にするためにブーストをソース管理に移動することを決定し、警告 (エラーとして扱われます) が発生します。

したがって、調査と CrazyCasta によって提供されたリンクからの詳細の後、問題は実際には次のとおりです。boost が /usr/local/include にある場合、システム ヘッダーとして扱われるため、gcc はいくつかの警告を抑制します。ブースト アウトに移行している間、gcc はそれに耐えられません。

基本的に、その警告を手動で無視または抑制します。

4

1 に答える 1

3

あなたの答えはここにあります。

基本的に、入力の行番号/ファイル名スペースを再マッピングしているため、コンパイラは行がどこから来たかを認識します。最初の数字はソースの行番号で、その後のファイル名は元のファイルです。その後の数字はフラグです。

于 2012-09-27T08:31:39.760 に答える