我有两个C ++包A和B,其中A依赖于B.我想通过让A吞下B代码的最小部分来打破这种依赖性,这样就可以完全抛弃B。
有没有人对我如何分析包A以确切地找出类/功能等有什么建议?我需要从B引入?
编辑: 我只是删除了包B,然后进行了(很多)循环的编译A,从B复制文件,相应地更新了Makefile.am。现在我很确定我的包装A膨胀的东西多于所需的东西。我如何找到A`代码中从未在其中出现的可执行文件/库中使用的部分?
答案 0 :(得分:1)
我认为有三种可能的行动方式:
真正仅导入所需内容:撤消所做的操作,然后再次执行,但这次不要复制B中的整个文件,而只是复制编译器告诉您的单个函数。
根据您目前的情况,让一些工具为您分析代码(请参阅Looking for a free source code analyzer (Function depedency tree)和Looking for a free source code analyzer (Function depedency tree)),或使用所有A编写大量代码并运行代码覆盖率分析。< / p>
答案 1 :(得分:0)
也许objdump会给你一些有用的信息。在二进制文件(objdump -t)上使用它,它应该能够显示有关导入函数的一些有用信息。