Error de C ++ LNK1169: se encontraron uno o más símbolos multi-definidos (singleton en otras llamadas .cpp)

Error de C ++ LNK1169: se encontraron uno o más símbolos definidos múltiples

Descripción del problema:
definí el modo singleton en MysqlSingleton.hy lo inicialicé fuera de la clase en MysqlSingleton.h, lo que equivale a declarar una variable global en MysqlSingleton.h, lo que da como resultado la función principal.cpp y luego incluye MysqlSingleton.h, Equivale a definir dos variables globales para provocar una redefinición. Dado que mi singleton es un tipo estático global, no puedo agregar directamente una declaración externa a la función principal.

Entonces, la solución final es: inicializar fuera de la clase en el archivo .cpp singleton.
Inserte la descripción de la imagen aquí

Además, de acuerdo con este error, hay un recordatorio: al escribir las variables globales de la clase en el futuro, debe escribirse en el archivo .cpp, de lo contrario es extremadamente propenso a múltiples errores de definición.

Supongo que te gusta

Origin blog.csdn.net/weixin_44517656/article/details/108869918
Recomendado
Clasificación