打扰一下,如果这个问题很愚蠢,但我已经四处搜索,却一无所获。
假设我创建了一个包含数百种方法的类扩展,并在项目中包含该类。现在假设从该扩展中,我只使用2或3种方法。请记住,类扩展有数百种方法。
当我编译代码时,二进制文件中将包含哪些内容?只是我从该类扩展中使用的方法或所有这些方法,甚至是那个特定项目没有使用的方法?
答案 0 :(得分:0)
这可以分为三类:
--whole-archive
--no-whole-archive
(其他连接器可能有类似选项)。
代码只包含您要扩展的库中的方法名称。
哎呀...将包括其他类的整个代码。
仅包含您使用的目标文件。我建议,对于大型课程,您可以尽可能地分割源代码。
尽管您明确使用了这些方法,但每个扩展/覆盖都需要一些符号,如vtable
。请参阅编译器文档。