我有两个C++程序包A和B,其中A依赖于B.我想通过具有吞下B码的最小部分要打破这种依赖关系,从而使B可以被抛出完全。合并两个C++封装
没有人有我怎么会简介包A找出到底有类/功能中的任何意见,等我需要的B带来的?
编辑: 我只是删除软件包B,并经过(很多)循环的编译A,从B复制文件,相应地更新了Makefile.am。现在我很确定我已经臃肿的A包含了比需要更多的东西。我如何找到在执行程序/库中从未使用过的A`代码部分?
我有两个C++程序包A和B,其中A依赖于B.我想通过具有吞下B码的最小部分要打破这种依赖关系,从而使B可以被抛出完全。合并两个C++封装
没有人有我怎么会简介包A找出到底有类/功能中的任何意见,等我需要的B带来的?
编辑: 我只是删除软件包B,并经过(很多)循环的编译A,从B复制文件,相应地更新了Makefile.am。现在我很确定我已经臃肿的A包含了比需要更多的东西。我如何找到在执行程序/库中从未使用过的A`代码部分?
也许objdump会给你一些有用的信息。在二进制文件(objdump -t)上使用它,它应该能够显示一些关于导入函数的有用信息。
我认为有作用的三种可能的方式:
真的导入必要的东西:撤消你做了什么,再做一遍,但这次不从B,而仅仅是拷贝整个文件编译器告诉你的单个函数缺失。
根据您当前的情况,让一些工具为您分析代码(请参阅Looking for a free source code analyzer (Function depedency tree)和Looking for a free source code analyzer (Function depedency tree)),或使用全部A编写大量代码并运行代码覆盖率分析。
这可能有点痛苦,但你总是可以删除'B',重新编译并查看你得到的错误消息:)然后从源代码管理中恢复你实际需要的东西。一旦你这样做了,作为第二步,你可以将你保存的东西迁移到'A'。 – 2012-04-26 19:25:07
我一直在做这个。是的,真的很痛苦。我把第一层丢失的文件拖回去,并重新编译,这给了我所依赖的东西。某些第二层文件可能会被删除,如果我剪掉了我实际上并不需要的第一层文件的一半。 – ajwood 2012-04-27 13:29:01