Durante la creación de un programa creas y borras funciones. Cuando borras, como es tan fácil hacerlo, puede ser un arma de doble filo si no lo haces correctamente. Si borras una función también deberás borrar su definición en la cabecera del módulo.
Si no lo haces, el compilador encontrará la definición de una función que le dirá "aquí se ha creado una función con estos argumentos y que puedes encontrar aquí al lado.." y...cuando se va a mirar el código de la función, resulta que no está porque la hemos borrado, así de golpe..
El error es parecido al que sale cuando no se encuentra alguna función de la tarjeta.
Podría ser algo así:
Aparecen un par de errores "[Linker Error] Unresolved external__" que hacen referencia a funciones que fueron creadas por el usuario: "CalentadorClick" y "Button2Click". Estas funciones se crean automáticamente cuando el usuario hace doble clic en algún botón. Si más adelante las borras, porque has eliminado el botón o por cualquier otro motivo DEBES BORRARLAS BIEN.
Para hacerlo correctamente, debes ir al módulo que indica el error y mostrar la cabecera del mismo. Haz clic con el botón derecho sobre el título de la unidad y selecciona "Open Source/Header File":
Una vez hecho, podrás ver el contenido de la cabecera, con todas las definiciones de las funciones usadas en el programa. Podría ser algo así:
Recordando un poco, en la cabecera aparecen todas las definiciones de las funciones creadas. Aquí sólo están sus nombres, argumentos que usarán (void, int, double..) y los datos que devolverán. Para cada función creada en ".cpp" aquí habrá una definición única.
Si borras una función de ".cpp" debes borrarla también de la cabecera ".h". Si no lo haces, el compilador encontrará una definición de la función en la cabecera pero no encontrará la función en el cuerpo del programa y se quejará..con un error tipo "[Link Error]"
La solución pasa por borrar de la cabecera aquellas funciones que el usuario creyó haber borrado (aquellas que aparecen referenciadas en el error).
El error también podría generarse al olvidar algún "include" que impediría encontrar las funciones buscadas, pero lo normal es que sea por el motivo anterior, de hecho si en la cabecera está definida la función y no está en el cuerpo, es casi seguro que la borraste así "de golpe".
Si olvidaras un "include" verías un error de este tipo:
Recuerda: una vez hayas eliminado las definiciones de la cabecera, no olvides volver al cuerpo de la unidad con la misma operación (botón derecho sobre el nombre de la unidad).
.
No hay comentarios:
Publicar un comentario