不必要的 C++ 代码会出现在我完成的程序中吗?

Does unnecessary C++ code end up in my completed program?

假设我包含了一个具有大量功能的 header 文件。

#include "1000Functions.h"

Function1(42);
Function2("Hello");
Function1000("geeks!");

但是,我只想使用 header 中的一些功能。在预处理、编译和链接(例如,使用 g++)之后,我的程序会包含所有 1000 个函数,还是只包含我使用的 3 个函数?

我发现 this article 这很有用。使用 objdump -tC ProgramName 可以向您显示在程序加载到内存中时最终加载到 .text 中的不必要代码。

Link-时间优化是我一直在寻找的,一旦我将这两个标签添加到链接命令中,它对我有用,而不仅仅是 -flto.

-O2 -flto