我有一些代码在静态库中被多个项目共享。即使使用函数级链接,输出的目标文件代码量仍然比我想要的多——可以参考这个问题。
显然,减少链接到最终可执行文件中的目标代码量的最直接解决方案是将翻译单元拆分,以便获得更多的.obj文件,每个文件包含更少的目标代码。我甚至可以走极端——将每个函数放入单独的翻译单元中。
假设我不关心由于有十倍的.cpp文件而引起的混乱,也不关心可能的链接时间增长。
这样分割成许多目标文件会对可执行文件大小产生额外开销吗?只是因为链接了十倍的.obj文件(但总体上它们具有完全相同的函数和变量)而使可执行文件变得更大吗?
显然,减少链接到最终可执行文件中的目标代码量的最直接解决方案是将翻译单元拆分,以便获得更多的.obj文件,每个文件包含更少的目标代码。我甚至可以走极端——将每个函数放入单独的翻译单元中。
假设我不关心由于有十倍的.cpp文件而引起的混乱,也不关心可能的链接时间增长。
这样分割成许多目标文件会对可执行文件大小产生额外开销吗?只是因为链接了十倍的.obj文件(但总体上它们具有完全相同的函数和变量)而使可执行文件变得更大吗?