ILD

gcc打印包含的头文件
作者:Yuan Jianpeng 邮箱:yuanjianpeng@xiaomi.com
发布时间:2021-5-7 站点:Inside Linux Development

有时候添加了-I选项,指定自定义的路径时,可能和系统路径的头文件冲突,为了确定使用哪个头文件。可以使用-H选项。


比如,有一个test.c,尖括号包含time.h

1
2
3
4
5
6
7
$ cat test.c
 
#include <time.h>
 
void main()
{
}


然后

1
2
3
4
5
touch time.h
$ cc -I. -H test.c
. ./time.h
Multiple include guards may be useful for:
./time.h


可以看到,-I选项影响尖括号包含的搜索路径,如果没有指定-I.,则使用的是系统的头文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
$ cc -H test.c
. /usr/include/time.h
.. /usr/include/features.h
... /usr/include/x86_64-linux-gnu/sys/cdefs.h
.... /usr/include/x86_64-linux-gnu/bits/wordsize.h
.... /usr/include/x86_64-linux-gnu/bits/long-double.h
... /usr/include/x86_64-linux-gnu/gnu/stubs.h
.... /usr/include/x86_64-linux-gnu/gnu/stubs-64.h
.. /usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h
.. /usr/include/x86_64-linux-gnu/bits/time.h
... /usr/include/x86_64-linux-gnu/bits/types.h
.... /usr/include/x86_64-linux-gnu/bits/wordsize.h
.... /usr/include/x86_64-linux-gnu/bits/timesize.h
.... /usr/include/x86_64-linux-gnu/bits/typesizes.h
.... /usr/include/x86_64-linux-gnu/bits/time64.h
.. /usr/include/x86_64-linux-gnu/bits/types/clock_t.h
.. /usr/include/x86_64-linux-gnu/bits/types/time_t.h
.. /usr/include/x86_64-linux-gnu/bits/types/struct_tm.h
.. /usr/include/x86_64-linux-gnu/bits/types/struct_timespec.h
... /usr/include/x86_64-linux-gnu/bits/endian.h
.... /usr/include/x86_64-linux-gnu/bits/endianness.h
.. /usr/include/x86_64-linux-gnu/bits/types/clockid_t.h
.. /usr/include/x86_64-linux-gnu/bits/types/timer_t.h
.. /usr/include/x86_64-linux-gnu/bits/types/struct_itimerspec.h
.. /usr/include/x86_64-linux-gnu/bits/types/locale_t.h
... /usr/include/x86_64-linux-gnu/bits/types/__locale_t.h
Multiple include guards may be useful for:
/usr/include/x86_64-linux-gnu/bits/long-double.h
/usr/include/x86_64-linux-gnu/bits/time64.h
/usr/include/x86_64-linux-gnu/bits/timesize.h
/usr/include/x86_64-linux-gnu/bits/typesizes.h
/usr/include/x86_64-linux-gnu/gnu/stubs-64.h
/usr/include/x86_64-linux-gnu/gnu/stubs.h
/usr/lib/gcc/x86_64-linux-gnu/9/include/stddef.h


Copyright © linuxdev.cc 2017-2024. Some Rights Reserved.