1

#includeヘッダー ファイルのいくつかの命令を含む C ファイルがあります。C ファイルを gcc でコンパイルすると、コンパイラは.h環境変数に含まれるパスでファイルを検索することがわかっています$CPATH.h特定のファイルの絶対パスを取得するにはどうすればよいですか? (コンパイルせずにパスを取得することを好みます)

4

2 に答える 2

1

-E でコンパイルすると、プリプロセッサの出力が得られ、その中に含まれるすべてのファイルに完全なパスが含まれます。たとえば、次の場合、ファイル 'file' には前処理された出力が含まれます。

gcc -E -o file file.c
于 2013-02-28T23:12:23.667 に答える
0

これはちょっとしたハックです:

cpp -MD file.c | sed -n '/\.h"/s/.*"\(.*\)".*/\1/p' | sort -u

の出力形式に明らかに依存しますcpp。(上記は gnu cpp 3.4.6 で機能します) これにより、含まれるすべてのファイルの完全なパスが得られます。気になる特定のヘッダーへの出力を減らすために、別のフィルターを介して楽しみます。

于 2013-02-28T23:00:39.727 に答える