Pensé que los métodos private
, que no se usan dentro de su clase, son eliminados por el compilador/enlazador y no serían parte del binario final.¿Cómo excluir los métodos no utilizados del binario final?
He creado una clase de ejemplo, con un método privado que se implementa pero no se utiliza.
class XXX
{
public:
XXX();
private:
void MyUnusedMethod();
};
Y en el archivo de implementación:
void XXX::MyUnusedMethod()
{
const char* hugo = "ABCCHARLYABC";
printf(hugo);
}
Después de la compilación todavía existen la cadena en el binario final. ¿Por qué? ¿Y cómo puedo evitar esto?
Saludos, Charly
¿Por qué no puedes poner ese método en el bloque '#if 0 ... # endif'? – iammilind
¿Ha intentado ajustar los indicadores de optimización para gcc? – slaphappy
Si te refieres al indicador '-O3', no hace ninguna diferencia. Por supuesto, si sé que no lo usaré más, no soy demasiado perezoso para eliminarlo. Pero también es una pregunta general: ¿por qué no se elimina por el compilador/vinculador? – Charly