¿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?