¿Es el enlace C ++ lo suficientemente inteligente como para evitar el enlace de las bibliotecas no utilizadas?

Estoy lejos de comprender completamente cómo funciona el enlazador de C ++ y tengo una pregunta específica al respecto.

Digamos que tengo lo siguiente:

Utils.h

namespace Utils
{
    void func1();
    void func2();
}

Utils.cpp

#include "some_huge_lib" // needed only by func2()

namespace Utils
{
    void func1() { /* do something */ }
    void func2() { /* make use of some functions defined in some_huge_lib */ }
}

main.cpp

int main()
{
  Utils::func1()
}

Mi objetivo es generar archivos binarios lo más pequeños posible.

Mi pregunta es, ¿serásome_huge_lib ser incluido en el archivo de objeto de salida?

Respuestas a la pregunta(4)

Su respuesta a la pregunta