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?