合并两个C ++包

时间:2012-04-26 18:15:11

标签: c++ profiling package packaging

我有两个C ++包A和B,其中A依赖于B.我想通过让A吞下B代码的最小部分来打破这种依赖性,这样就可以完全抛弃B。

有没有人对我如何分析包A以确切地找出类/功能等有什么建议?我需要从B引入?

编辑: 我只是删除了包B,然后进行了(很多)循环的编译A,从B复制文件,相应地更新了Makefile.am。现在我很确定我的包装A膨胀的东西多于所需的东西。我如何找到A`代码中从未在其中出现的可执行文件/库中使用的部分?

2 个答案:

答案 0 :(得分:1)

我认为有三种可能的行动方式:

  1. 真正仅导入所需内容:撤消所做的操作,然后再次执行,但这次不要复制B中的整个文件,而只是复制编译器告诉您的单个函数。

  2. 根据您目前的情况,让一些工具为您分析代码(请参阅Looking for a free source code analyzer (Function depedency tree)Looking for a free source code analyzer (Function depedency tree)),或使用所有A编写大量代码并运行代码覆盖率分析。< / p>

  3. 注释掉从B复制的源中的函数(不在标题中)。现在你的链接器会抱怨任何缺失的功能。取消注释这些,删除其余部分,包括它们在标头中的声明。这是第一种方法。

答案 1 :(得分:0)

也许objdump会给你一些有用的信息。在二进制文件(objdump -t)上使用它,它应该能够显示有关导入函数的一些有用信息。