有没有办法为C文件生成包含映射?

有没有办法为C文件生成包含映射?,c,header-files,C,Header Files,鉴于: 包含多个头文件的C文件 一组包含文件搜索文件夹 有没有办法为C文件生成某种包含映射 尽管IDE有时可以帮助定位头文件中符号的定义/声明。但我认为,当项目变得复杂时,include映射可以让我更好地了解这些文件之间的关系。并确定问题,如循环包括 加1 类似的线索,但没有多大帮助 构建时,它仅在输出窗口中的文本中生成包含层次结构 它只适用于原生VC++项目。不适用于NMAKE C项目 加2 我刚刚尝试了上面提到的线程。虽然不是免费的,但它并不昂贵,而且非常适合我的场景。最近,几乎所

鉴于:

  • 包含多个头文件的C文件
  • 一组包含文件搜索文件夹
有没有办法为C文件生成某种包含映射

尽管IDE有时可以帮助定位头文件中符号的定义/声明。但我认为,当项目变得复杂时,include映射可以让我更好地了解这些文件之间的关系。并确定问题,如循环包括

加1 类似的线索,但没有多大帮助

  • 构建时,它仅在输出窗口中的文本中生成包含层次结构
  • 它只适用于原生VC++项目。不适用于NMAKE C项目

加2
我刚刚尝试了上面提到的线程。虽然不是免费的,但它并不昂贵,而且非常适合我的场景。

最近,几乎所有的特色IDE都可以帮助您实现这一内置功能。Visual Studio或Jetbrain的Clion非常适合这样做。您既没有编写平台也没有编写环境,但即使努力正确设置编译的项目,也值得一试。
以前,我发现使用doxygen生成文档也很有用,因为我记得它也会创建这样的映射/链接。

不确定这是否正是您想要的,但我很好奇这张图会是什么样子,所以我把它放在一起。这有点混乱,但对于一次性脚本来说是可行的:

#/bin/bash
INCLUDE_DIRS=()
#在此处添加任何include dir
#INCLUDE_DIRS+=(“/usr/INCLUDE”)
#如果要为某些pkg配置模块添加标志(空格
#分开的)
包装配置包装=“”
跟随系统包含=y
读dir时;做
dir=“$(readlink-f“${dir}”)”
对于“${INCLUDE_DIRS[@]}”中的d”;做
如果[“${dir}”=“${d}”];然后
持续
fi
完成
包括_DIRS+=(“${dir}”)
完成<&1| grep'^'| cut-b2-)
已处理=()
读取标志时;做
如果[-n“${flag}”];然后
INCLUDE_DIRS+=(“${flag}”)
fi
我想这些可能会有帮助,
$ ./include-map.sh /usr/include/stdint.h | dot -Tx11