Tengo esta aplicación MFC en la que estoy trabajando que necesita tener una base de datos integrada. Así que fui a buscar una base de datos "incrustable" rápida y astuta para ello y tropecé con SQLite.¿Cómo puedo resolver el "error LNK2019: símbolo externo no resuelto"?
Creé un DB con él y creé un proyecto de biblioteca estática con Visual Studio 2008. El proyecto de biblioteca se usará en otro proyecto principal.
En el proyecto de biblioteca, creé una clase DBClass
con un método AddFeedToDB(CFeed f)
. El proyecto de biblioteca utiliza el archivo .lib
del proyecto de código (cppsqlite3.lib
).
Al compilar la biblioteca estática, no se detecta ningún error, pero cuando trato de utilizar el archivo de proyecto de biblioteca en el proyecto principal, recibo este tipo de errores:
error LNK2019: unresolved external symbol "public:void __thiscall
CppSQLite3DB::close(void)" ([email protected]@@QAEXXZ
referenced in function "public: int __thiscall
CTalkingFeedsDB::AddFeedToDB(class CFeed,char const*)" (?
[email protected]@@[email protected]@[email protected]
¿Qué me falta?
¿Responde esto a la pregunta? – ST3
@ ST3: al parecer, resolvió este caso particular. No es una receta general para resolver errores de enlazador, si eso es lo que quieres decir. – xtofl
Sí, agregar esta línea también resolvió mi problema (similar). Lo que sucede en realidad es que algún proyecto necesita un símbolo definido en otro archivo DLL que no se exporta (generalmente MSVS) –