解开.h依赖
发布时间:2020-12-14 04:54:46 所属栏目:百科 来源:网络整理
导读:如果你有一组.h文件已经成为经典的“gordian结”情况的受害者,你会怎么做?#include one .h意味着你最终包括几乎整个地段?预防显然是最好的药物,但是如果在供应商(!)运送库之前发生了这种情况,您会怎么做? 这是问题的扩展,这可能是更相关的问题 – 你是否
如果你有一组.h文件已经成为经典的“gordian结”情况的受害者,你会怎么做?#include one .h意味着你最终包括几乎整个地段?预防显然是最好的药物,但是如果在供应商(!)运送库之前发生了这种情况,您会怎么做?
这是问题的扩展,这可能是更相关的问题 – 你是否应该首先尝试解开依赖关系? 解决方法
我已经在已经拆分成许多库的C代码库上完成了这个(这是一个好的开始).
我不得不锻炼(或猜测)哪个库最依赖,这取决于代码库中的其他内容.然后我依次处理每个库. 我依次查看每个模块(* .cpp文件)并确保它自己的头首先是#included并注释掉其余部分,然后我注释掉了那个头文件中的所有#includes然后重新编译了那个模块让编译器告诉我需要什么.我会取消评论似乎需要的第一个标题,并审核那个标题,并在必要时进行递归.有趣的是看到有多少标头最终不需要. 只需要名称(因为你有一个指针或引用),使用类名;或struct name;,它被称为前向声明并避免#include头文件. 当您注释掉#includes时,编译器非常有助于告诉您依赖性是什么(您需要使用所有编译器重新编译以保持可移植性). 有时我不得不在库之间移动模块,以便没有任何一对或一组库相互依赖. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |