GCC选项之-M
大多数的C/C++编译器都支持一个“-M”的选项,即自动找寻源文件中包含的头文件。举个例子,比如mian.c包含有如下头文件。
|
#include <stdio.h> #include "log.h" |
用gcc -M main.c就可以输入其包含的所有头文件。如下图所示。
|
[root@bogon 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>造成的依赖关系,不会显示标准库的头文件,如下图所示。
|
[root@bogon CodeNotes]# gcc -MM main.c main.o: main.c log.h |
GCC选项之-M的更多相关文章
- gcc选项-g与-rdynamic的异同
摘自http://www.tuicool.com/articles/EvIzUn gcc选项-g与-rdynamic的异同 gcc 的 -g ,应该没有人不知道它是一个调试选项,因此在一般需要进行程序 ...
- GCC选项
-g: Debugging Option. 提供给GDB的debugging信息的选项: -fno-omit-frame-pointer: Optimization Option: -Wstrict- ...
- gcc选项-g与-rdynamic的异同_转
转自:http://www.tuicool.com/articles/EvIzUn gcc 的 -g ,应该没有人不知道它是一个调试选项,因此在一般需要进行程序调试的场景下,我们都会加上该选项,并且根 ...
- 常用gcc选项
<Linux GCC常用命令> Makefile有三个非常有用的变量.分别是$@,$^,$<代表的意义分别是: $@--目标文件,$^--所有的依赖文件,$<--第一个依赖文件 ...
- GCC选项_-Wl,-soname 及 DT_NEEDED 的解释
-Wl选项告诉编译器将后面的参数传递给链接器. -soname则指定了动态库的soname(简单共享名,Short for shared object name) soname的关键功能是它提供了兼容 ...
- 【转载】 GNU GCC 选项说明
GCC 1 Section: GNU Tools (1) Updated: 2003/12/05 Sponsor: GCC Casino Winning Content NAME gcc,g++-GN ...
- gcc选项 笔记
gcc –E hello.c –o hello.i 使用gcc的选项"-E" 让gcc在预处理结束后停止编译过程. gcc –S hello.i –o hello.s &q ...
- GCC选项 –I,-l,-L
-I:指定第一个寻找头文件的目录 -L:指定第一个寻找库文件的目录 -l:表示在库文件目录中寻找指定的动态库文件 例: gcc –o hello hello.c –I /home/hello/incl ...
- Linux下动态链接库 与gcc 选项
-L 编译时查找动态链接库的路径 -lxxx(小写) e.g -lcudart = link libcudart.so , -I(大写) 头文件的路径 -rpath (-R), 编译时指定链接 ...
随机推荐
- 利用MATLAB截取一张复杂图片中想要的区域
A = imread('1.jpg'); imshow(A); [x,y] = ginput(2); %确定图像上的两点利用ginput函数,返回值是两点的坐标 pic_1 = imcrop(A ...
- [转]github详细教程
GitHub详解 GitHub 是一个共享虚拟主机服务,用于存放使用Git版本控制的软件代码和内容项目.它由GitHub公司(曾称Logical Awesome)的开发者Chris Wanstrath ...
- 修改bootstrap-table中的分页样式
使用bootstrap-table时,使用$("")选择器没办法选中下方的分页button按钮,可能跟它是动态生成的有关吧. 最终找到与之对应的js(bootstrap-table ...
- python------栈和队列的实现
一.神马是栈 古有粮仓,即为栈.粮仓的特点就是最后放进去的谷粒,放在最上面.打仗行军,取粮是怎么取最快?肯定是最先取最上面的!栈这一种常用到的数据结构就是这种特点:后进先出(Last In First ...
- day15 json,os,sys,hashlib
序列化模块 import json # json 序列化模块 是所有语言通用的一种标准(数据转化格式). # str int bool dict list(tuple) None import pi ...
- ios NSUserDefaults存储数据(偏好设置)
ios NSUserDefaults存储数据(偏好设置) 1.NSUserDefaults用于存储数据量小的数据,主要是用户配置,但也可以支持存储一些小数据包括:NSString, NSNumber, ...
- go语言处理文件上传和多个文件上传
uploadOne.html代码如下: <!doctype html> <html lang="en"> <head> <meta cha ...
- Exploring the world of Android :: Part 2
September 17th, 2009 by Tom van Zummeren | And I’m back! Reporting live on the glorious adventures i ...
- threejs 世界坐标转化为屏幕坐标
网站: http://www.yanhuangxueyuan.com/Three.js_course/screen.html 方法.project 通过Vector3对象的方法project,方法的参 ...
- vuex,文件夹整理
不多说直接上图 1,执行事件和调用 2添加模块 3模块内执行过程