利用GCC的预处理器分析包含指令之间的依赖关系
来源:互联网 发布:js如何清空div的内容 编辑:程序博客网 时间:2024/05/24 06:00
使用-H参数,cpp -H -I<include-dirs> <source-file> 2>&1 1>/dev/null | grep <project-include-dir>,
其中-H参数可以打印#include指令的包含关系的栈,<source-file>是源文件;2>&1是将输出到标准错误的内容重定向到标准输出上,方便后面进行管道操作,而1>/dev/null是将原来输出到标准输出的内容(即预处理器对源文件处理后的结果)丢弃。经过这样的重定向处理后,输出到标准输出的就只有表示#include关系的内容了。grep语句的作用是要将包含的语言的标准头文件或操作系统的头文件(以#include<..>形式包含的)去掉(输出的是绝对路径,而一般标准库的路径不会包含有特定项目的名称,所以可以过滤掉)。
其中-H参数可以打印#include指令的包含关系的栈,<source-file>是源文件;2>&1是将输出到标准错误的内容重定向到标准输出上,方便后面进行管道操作,而1>/dev/null是将原来输出到标准输出的内容(即预处理器对源文件处理后的结果)丢弃。经过这样的重定向处理后,输出到标准输出的就只有表示#include关系的内容了。grep语句的作用是要将包含的语言的标准头文件或操作系统的头文件(以#include<..>形式包含的)去掉(输出的是绝对路径,而一般标准库的路径不会包含有特定项目的名称,所以可以过滤掉)。
包含关系的栈,输出的头文件绝对路径名前面只有一个“.”的,表示是从当前“.c”中包含的,这是第一层包含的;如果第一层所包含的头文件又包含其他头文件,那么紧接着这个包含文件的下面,会以两个点“..”起一行显示该文件包含的其他的头文件的绝对路径名。以此类推,就得到一个包含指令之间的关系栈。
0 0
- 利用GCC的预处理器分析包含指令之间的依赖关系
- 预处理指令#include包含文件的查找
- Linux安装gcc软件的依赖关系
- gcc -L lib的依赖关系
- 分析数据库的依赖关系
- BlockingQueue包含的方法之间的关系
- 编译器开发: 利用图的拓扑排序算法,计算源代码文件之间的依赖关系
- 利用GCC生成c文件依赖关系
- spring bean之间的关系:继承;依赖
- TestNG中case之间的依赖关系
- 项目与项目之间的依赖关系
- 10009---bean 之间的关系:继承;依赖
- Oracle 查询锁之间的依赖关系
- bean 之间的关系:继承;依赖
- spring- bean之间的关系 继承 依赖
- spring 各个包之间的依赖关系
- maven 项目之间的依赖关系
- gcc glibc 和binutils之间的关系
- HTTP学习(网上总结)
- 进军sopc——第一天遇到的bug以及解决方法
- 编写自己的classloader加载加密过的class
- sublime text2 格式化html文档插件Tag及使用
- You requested 'iPhone 6 (9D9EC7F6-20A3-4884-B0EC-551ABE9CE0B0) (8.1 Simulator)', but the available d
- 利用GCC的预处理器分析包含指令之间的依赖关系
- android 自定义窗口大小在java中设定
- 【VB.NET】为什么叫VB.NET
- struts2的拦截器
- Qt国际化——多语言翻译时值得注意的一个编程问题
- [nginx]centos6.5下nginx-1.6.2的安装,与tomcat简单整合
- HDOJ 1017 A Mathematical Curiosity
- 动态注册native函数
- HDU 1990 & ZOJ 2992 Monkey Vines(数学啊)