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

时间: 2024-11-11 21:21:24

GCC选项之-M的相关文章

gcc选项-g与-rdynamic的异同

摘自http://www.tuicool.com/articles/EvIzUn gcc选项-g与-rdynamic的异同 gcc 的 -g ,应该没有人不知道它是一个调试选项,因此在一般需要进行程序调试的场景下,我们都会加上该选项,并且根据调试工具的不同,还能直接选择更有针对性的说明,比如 -ggdb .-g是一个编译选项,即在源代码编译的过程中起作用,让gcc把更多调试信息(也就包括符号信息)收集起来并将存放到最终的可执行文件内. 相比-g选项, -rdynamic 却是一个 连接选项 ,它

gcc选项

摘自http://blog.csdn.net/liuchao1986105/article/details/6674822 版本] -0.13  [声明]  这篇文档是我的关于gcc参数的笔记,我很怀念dos年代我用小本子,纪录任何的dos 命令的参数.哈哈,下面的东西可能也不是很全面,我参考了很多的书,和gcc的帮助.不全的原因是,有可能我还没有看到这个参数,另一种原因是,我可能还不会用他 但是,我会慢慢的补齐的.哈哈 假如您要转在本文章请保留我email([email protected])

gcc选项 笔记

gcc –E hello.c –o hello.i   使用gcc的选项“-E” 让gcc在预处理结束后停止编译过程. gcc –S hello.i –o hello.s   “-S”选项只进行编译而不进行汇编,生成汇编代码. [[email protected] gcc] gcc  hello1.c  –I  /root/workplace/gcc/  -o  hello1

【原创】GCC选项-g和-ggdb的区别

很多人不清楚 gcc 编译选项 -g 和 -ggdb 的区别是什么,这里根据 stackoverflow 上的一个帖子,以及相关手册上的内容进行解释说明. Debugging-Options of GCC 手册说明 -g Produce debugging information in the operating system's native format (stabs, COFF, XCOFF, or DWARF 2). GDB can work with this debugging in

Linux下动态链接库 与gcc 选项

-L 编译时查找动态链接库的路径 -lxxx(小写)  e.g -lcudart   = link libcudart.so  , -I(大写) 头文件的路径 -rpath (-R), 编译时指定链接动态库的路径 可以用ldd <your_execute>看看是不有 ‘not found’在你链接的库后面, 解决方法是通过-Wl,rpath=<your_lib_dir>,使得execute记住链接库的位置 LD_LIBRARY_PATH  程序运行时查找动态库的路径 C_INCLU

GCC选项 &ndash;I,-l,-L

-I:指定第一个寻找头文件的目录 -L:指定第一个寻找库文件的目录 -l:表示在库文件目录中寻找指定的动态库文件 例: gcc –o hello hello.c –I /home/hello/include –L /home/hello/lib –lworld /home/hello/include 作为第一个头文件的寻找目录.头文件寻找顺序:/home/hello/include –> /usr/include –> usr/local/include /home/hello/lib 作为第

gcc 编译控制选项

gcc 编译控制选项前面已经讲过, gcc 的基本用法是:$ gcc [选项] [文件名]gcc 有很多编译控制选项,使得 gcc 可以根据不同的参数进行不同的编译处理,可供 gcc调用的参数大约有 100 来个,但实际使用中并不会用到这么的多选项和参数.这里只介绍一些最基本和常用的控制选项以及参数,如表 10.3 所列.表 10.3 gcc 常用选项和参数 名称 功能描述 -c 只编译不链接.编译器只是将输入的.c 等源代码文件生成.o 为后缀的目标文件,通常用于编译不包含主程序的子程序文件

gcc总结【基本用法】【选项】【动静态库】(转)

1.//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// linux下c编程起步一:掌握gcc基本用法 初学时最好从命令行入手,

GCC 编绎选项 转

gcc提供了大量的警告选项,对代码中可能存在的问题提出警告,通常可以使用-Wall来开启以下警告:           -Waddress -Warray-bounds (only with -O2) -Wc++0x-compat           -Wchar-subscripts -Wimplicit-int -Wimplicit-function-declaration           -Wcomment -Wformat -Wmain (only for C/ObjC and un