teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2019/06/13 12:31

投稿

KSwordOfHaste
KSwordOfHaste

スコア18404

answer CHANGED
@@ -28,6 +28,28 @@
28
28
 
29
29
  本来このオプションはプリプロセッサーを通じてソースファイルの内容が実際にどのように展開されるかを確認するためにあるのだと思いますが、ヘッダーの場所もたまたま出てるので使ってもよい気がしました。
30
30
 
31
+ **追記: asmさんにご指摘いただいたようにgccだと-Hの方がずっと見やすいです**。-Hですとヘッダーの場所がどこかとヘッダーの依存関係が視覚的にわかりやすく出てきます。
32
+ ```bash
33
+ $ gcc -H -c ss.c
34
+ . /usr/include/sys/time.h
35
+ .. /usr/include/_ansi.h
36
+ ... /usr/include/newlib.h
37
+ .... /usr/include/_newlib_version.h
38
+ ... /usr/include/sys/config.h
39
+ 以下省略
40
+ ```
41
+ そういえばmakefileのヘッダーの依存関係を自動生成する方法があったと思い、も少し調べてみると-Mオプションなんかもいいと思いました。
42
+ ```bash
43
+ $ gcc -M ss.c
44
+ ss.o: ss.c /usr/include/sys/time.h /usr/include/_ansi.h \
45
+ /usr/include/newlib.h /usr/include/_newlib_version.h \
46
+ /usr/include/sys/config.h /usr/include/machine/ieeefp.h \
47
+ 以下省略
48
+ ```
49
+ こちらはmakeのための依存行をもろに出すものですが-Hと同様どこにヘッダーがあるかそのものを出力してくれます。自動的に依存関係を考慮するようなmakefileをほとんど書いたことがないので-Mがすぐに出てきませんでした。また-Hの方は全然知りませんでした(^^;
50
+
51
+ ご指摘ありがとうございました。>asmさん
52
+
31
53
  ### -vオプション
32
54
 
33
55
  ```bash