首页 / 知识
关于C#:如何在Linux上查找大型项目的标头依赖项
2023-04-16 10:47:00

How to find header dependencies for large scale projects on linux我正在处理一个非常大型的项目,其中的编译时间很长。我可以在Linux上使用哪些工具(最好是开放源代码)来查找包含最多的文件并优化其使用率? 这里的答案将为您提供跟踪#include依赖关系的工具。但是没有提到优化之类的东西。 此外:"大型C软件设计"这本书应该有所帮助。 签出makdepend 使用Unix哲学"将许多小工具粘合在一起",我建议编写一个简短的脚本,该脚本使用-M(或-MM)和-MF(OUTFILE)选项调用gcc(如此处所述)。这将生成make工具的依赖项列表,您可以轻松地对其进行解析(相对于直接解析源文件)并提取出所需的信息。 从源树的根目录执行以下操作(\\\\ t为制表符):
第1行获取所有包含行。 诸如doxygen之类的工具(与graphviz选项一起使用)可以为包含文件生成依赖关系图...我不知道它们是否可以为您要执行的操作提供足够的概述,但值得尝试。 该页面中的Bash脚本不是很好的解决方案。它仅适用于简单项目。实际上,在大型项目中,例如在标题页中进行描述,经常使用C预处理器(#if,#else,...)。只有更复杂的优质软件(例如makedepend或scons)才能提供优质信息。 gcc -E可以提供帮助,但是在大型项目中,其结果分析是浪费时间。 使用ccache。它将输入的内容散列到编译中,并缓存结果,这将大大提高此类编译的速度。 如果要检测多个包含,以便删除它们,则可以按照Iulian?erb?noiu的建议使用makedepend:
将对每个包含多个内容发出警告。 如果您想知道其中最包含哪些文件,请使用以下bash命令:
|
最新内容
相关内容
linux命令补全工具?
linux命令补全工具?,工具,系统,软件,地址,命令,名称,智能,环境,信息,终端,简述Linux中的命令行自动补齐功能1、首先打开LINUX的操作系统,在左边linux编译完运行命令?
linux编译完运行命令?,系统,代码,环境,工具,信息,命令,文件,程序,终端,编辑,在linux中编译C输入完程序后输入个:wq然后按什么键就然后就回到了linux中查找替换命令?
linux中查找替换命令?,标的,文件,名称,代码,内容,字符串,命令,批量,方法,表示,linux下批量查询文件内容字符串并替换1、一)通过vi编辑器来替换递归查找linux命令?
递归查找linux命令?,时间,档案,命令,标准,数据,系统,名称,文件,服务,信息,linux搜索文件名命令(使用find命令在Linux上查找文件和目录)1、findlinux系统命令行工具?
linux系统命令行工具?,工具,系统,工作,状态,命令,地方,标准,信息,环境,基础,Linux:Python编写Linux自定义命令工具state是命令执行结果的状态,rlinux查找设备号命令?
linux查找设备号命令?,设备,系统,信息,名称,分区,网上,情况,软件,技术,工具,在linux中如何知道自己的IDE设备的代号呢?例如,第一个 IDE 硬盘的linux打包项目命令?
linux打包项目命令?,项目,文件,命令,软件,数字,系统,名称,工具,目录,格式,Linux打包和压缩1、Linux下,常用打包命令有2个,分别是tar和dd;常用的压linux项目更新命令行?
linux项目更新命令行?,工作,地址,系统,数据,信息,项目,标准,电脑,目录,命令,linux常用的命令有哪些1、linux系统常用操作命令linux系统常用操linux中编译命令是?
linux中编译命令是?,系统,代码,工具,基础,名字,命令,编译器,文件,终端,源程序,要怎么在linux系统中编译并运行c程序1、在Linux下面,如果要编译linux源码编译命令?
linux源码编译命令?,代码,设备,环境,工作,官网,最新,下来,电脑,软件,项目,如何编译armlinux的go?第一次编译时用的是root用户(第二次用一般用户linux命令下载工具?
linux命令下载工具?,工具,网络,代理,代码,简介,位置,系统,第一,下载工具,文件,Linux下多线程下载工具MWget和Axel使用介绍1、wget是linux下一linux终端编译命令?
linux终端编译命令?,代码,工具,环境,系统,终端,文件,源程序,编译器,语言,指令,linux终端下如何进行C语言编译在Linux下面,如果要编译一个C语言