A ligação C ++ é inteligente o suficiente para evitar a ligação de bibliotecas não utilizadas?

Estou longe de entender completamente como o vinculador C ++ funciona e tenho uma pergunta específica sobre ele.

Digamos que tenho o seguinte:

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()
}

Meu objetivo é gerar o menor número possível de arquivos binários.

Minha pergunta é, serásome_huge_lib ser incluído no arquivo do objeto de saída?

questionAnswers(4)

yourAnswerToTheQuestion