具有cmake依赖性问题的C meta

2024-05-18 12:04:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在研究一个混合C和C++(当然是在不同文件中)的项目。作为调试的一部分,我希望能够打印和保存/加载C代码中的数据结构。当然,我希望代码是自动生成的,我有两个脚本,它们通过python解析C代码,并通过读取结构成员输出函数来完成任务,从而实际管理工作

然而,有一点问题-我使用cmake来构建项目,它允许我自动构建这些,但是当我看到事物的“依赖性”方面时,问题就来了-也就是说,因为cmake不知道我的脚本正在解析代码(以及头文件),因此输出依赖于脚本,即C文件,以及它导入的头文件和它们导入的头文件,等等

我已经找到了如何让gcc给我一个给定文件的当前依赖关系树,但是我意识到在与cmake集成时有一个问题-即,一旦我声明了生成文件的依赖关系,cmake就不会自动重新检查依赖关系列表是否已更改。因此,如果C文件开发人员在某处添加了一个新的include语句,它将重新编译一次,但不会重新编译对新头的更改

例如:

起初

A.c ----includes----> B.h

编译

然后A被修改为

A.c ----includes----> B.h | └---> C.h

但是将来对C.h的更改不会导致脚本重新运行,因为cmake的输出依赖关系视图已经过时

有没有办法在cmake中解决这个问题

< P>可选的,是否有一种支持的方式从源代码中获得C/C++元数据,而这些代码是我不知道的CMADE支持的?p>

谢谢


Tags: 文件项目函数代码脚本cmake数据结构头文件
1条回答
网友
1楼 · 发布于 2024-05-18 12:04:16

我有一个想法-我可以让脚本将依赖项列表转储为生成导入的.cmake文件-这将在每次更改依赖项时触发cmake重新运行,从而使依赖项信息保持最新

有人看到这个有问题吗

相关问题 更多 >