Last Update 2021/12/15
-H
使用されているヘッダファイルの一覧を出力
テスト概要
-Hオプションの出力例
実行環境
GCC-8.2.0
GNU C Library 2.28
GNU Binutils 2.31.1
GNU C Library 2.28
GNU Binutils 2.31.1
コード例・出力内容中の表記
・実行例中の太字表記部分は、コマンドなどの入力された文字列を示します。
・「︙」や「...」の着色省略表記は、 実際のソースコードや出力内容などを省略加工した部分を示します。
・「︙」や「...」の着色省略表記は、 実際のソースコードや出力内容などを省略加工した部分を示します。
使用ファイル
sample.h
#ifndef SAMPLE_H
#define SAMPLE_H
#include <stdio.h>
#include "func.h"
#endif /* SAMPLE_H */
sample.c
#include "sample.h"
int main(void)
{
sampFunc();
printf("sample\n");
return 0;
}
func.h
#ifndef FUNC_H
#define FUNC_H
void sampFunc(void);
#endif /* FUNC_H */
func.c
#include "func.h"
void sampFunc(void)
{
}
動作テスト
-Hオプションの出力例
$ ls -l
total 16
-rw-r--r-- 1 ****** ******** 44 *** ** **:** func.c
-rw-r--r-- 1 ****** ******** 74 *** ** **:** func.h
-rw-r--r-- 1 ****** ******** 88 *** ** **:** sample.c
-rw-r--r-- 1 ****** ******** 96 *** ** **:** sample.h
$ gcc -H sample.c func.c
. sample.h
.. /usr/include/stdio.h
... /usr/include/bits/libc-header-start.h
.... /usr/include/features.h
..... /usr/include/sys/cdefs.h
...... /usr/include/bits/wordsize.h
...... /usr/include/bits/long-double.h
..... /usr/include/gnu/stubs.h
...... /usr/include/gnu/stubs-64.h
... /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.0/include/stddef.h
... /usr/lib/gcc/x86_64-pc-linux-gnu/8.2.0/include/stdarg.h
... /usr/include/bits/types.h
.... /usr/include/bits/wordsize.h
.... /usr/include/bits/typesizes.h
... /usr/include/bits/types/__fpos_t.h
.... /usr/include/bits/types/__mbstate_t.h
... /usr/include/bits/types/__fpos64_t.h
... /usr/include/bits/types/__FILE.h
... /usr/include/bits/types/FILE.h
... /usr/include/bits/types/struct_FILE.h
... /usr/include/bits/stdio_lim.h
... /usr/include/bits/sys_errlist.h
.. func.h
Multiple include guards may be useful for:
/usr/include/bits/libc-header-start.h
/usr/include/bits/long-double.h
/usr/include/bits/sys_errlist.h
/usr/include/bits/typesizes.h
/usr/include/gnu/stubs-64.h
/usr/include/gnu/stubs.h
/usr/lib/gcc/x86_64-pc-linux-gnu/8.2.0/include/stddef.h
. func.h
$ ls -l
total 36
-rwxr-xr-x 1 ****** ******** 18392 *** ** **:** a.out
-rw-r--r-- 1 ****** ******** 44 *** ** **:** func.c
-rw-r--r-- 1 ****** ******** 74 *** ** **:** func.h
-rw-r--r-- 1 ****** ******** 88 *** ** **:** sample.c
-rw-r--r-- 1 ****** ******** 96 *** ** **:** sample.h
$ 使用されたヘッダファイルリストの出力、およびコンパイルの実行完了
ヘッダファイルリストは#includeスタックの深さを表すインデント有り