GCC选项之-M

Posted 旅途

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GCC选项之-M相关的知识,希望对你有一定的参考价值。

大多数的C/C++编译器都支持一个“-M”的选项,即自动找寻源文件中包含的头文件。举个例子,比如mian.c包含有如下头文件。

#include <stdio.h>

#include "log.h"

      

用gcc -M main.c就可以输入其包含的所有头文件。如下图所示。

 [[email protected] CodeNotes]# gcc -M main.c

main.o: main.c /usr/include/stdio.h /usr/include/features.h \

  /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h \

  /usr/include/gnu/stubs.h /usr/include/gnu/stubs-32.h \

  /usr/lib/gcc/i386-redhat-Linux/4.1.2/include/stddef.h \

  /usr/include/bits/types.h /usr/include/bits/typesizes.h \

  /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \

  /usr/include/bits/wchar.h /usr/include/gconv.h \

  /usr/lib/gcc/i386-redhat-linux/4.1.2/include/stdarg.h \

  /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h log.h

      

可以看出“-M”参数会把一些标准库的头文件也包含进来。如果你使用GNU的C/C++编译器,你可以用“-MM”参数,它会忽略#include<file>造成的依赖关系,不会显示标准库的头文件,如下图所示。

 [[email protected] CodeNotes]# gcc -MM main.c

main.o: main.c log.h

以上是关于GCC选项之-M的主要内容,如果未能解决你的问题,请参考以下文章

Linux gcc编译之-std选项

在带有标志选项 -m32 的 gcc-8.2.2 上找不到 std::thread。我正在使用 mingw

gcc中的-w -W和-Wall选项

Linux Makefile 生成 *.d 依赖文件以及 gcc -M -MF -MP 等相关选项说明(转)

Linux Makefile 生成 *.d 依赖文件以及 gcc -M -MF -MP 等相关选项说明(转)

gcc之编译4步曲