gpt4 book ai didi

c - 从 C 代码项目中提取所需的函数?

转载 作者:太空狗 更新时间:2023-10-29 12:20:46 26 4
gpt4 key购买 nike

如何从一堆C源文件中只提取需要的函数?有没有可以在 GNU/Linux 上使用的工具?

最好是 FOSS,但 GNU/Linux 是硬性要求。

基本上我得到了大约 10 个 .h 文件;我想获取部分代码并从头文件中获取所需的变量。然后我可以制作一个小的 .h 文件,对应于我在另一个项目中使用的代码。

我的条款可能不是 100% 正确。

最佳答案

您可能知道也可能不知道的一个工具是 cscope .它可以用来帮助你。

对于一组给定的文件(稍后会详细介绍这意味着什么),它会为您提供以下选项:

Find this C symbol:
Find this global definition:
Find functions called by this function:
Find functions calling this function:
Find this text string:
Change this text string:
Find this egrep pattern:
Find this file:
Find files #including this file:

因此,如果您知道要使用函数 humungous_frogmondifier(),您可以通过在“查找此全局定义”之后键入其名称(或粘贴其名称)来找到它的声明或定义位置'.如果您随后想知道它调用了哪些函数,请使用下一行。一旦您在指定名称后按回车键,您将在屏幕上的此菜单上方获得源文件中相关行的列表。您可以翻阅列表(如果条目多于屏幕无法显示),并随时按数字或字母选择显示的条目之一,在这种情况下,cscope 将启动您的编辑器文件。

那个文件列表怎么样?如果您在没有任何设置的情况下在目录中运行 cscope,它将扫描目录中的源文件并构建其交叉引用。但是,如果您愿意,可以在 cscope.files 中设置文件名列表,它会改为分析这些文件。您还可以在 cscope 命令行中包含 -I/path/to/directory,它也会在这些目录中找到引用的 header 。

我在一些大型项目上使用 cscope 15.7a - 取决于项目的版本,大约有 21,000 到 25,000 个文件(以及一些只有 10-15,000 个文件的较小项目)。设置这个项目大约需要半个小时(所以我每晚仔细重建一次索引,并使用当天的文件,接受它们在一天结束时不太准确)。它使我能够追踪未使用的东西,并找出使用这些东西的位置,等等。

如果您习惯了 IDE,它会很原始。如果您习惯使用 curses-mode 程序(vim 等),那么它还算友好。

关于c - 从 C 代码项目中提取所需的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9489685/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com