Tengo un proyecto nativo C++ VS2008, que deseo compilar como una DLL.C++ Project compila como lib estática, falla (error del enlazador) como lib dinámico. ¿por qué?
Solo hace referencia a una biblioteca externa (log4cplus.lib) y utiliza sus funciones. (también usa los archivos .h de log4cplus, naturalmente).
Cuando intento compilar mi proyecto como una biblioteca estática, lo logra. Cuando trato como DLL, falla:
1>MessageWriter.obj : error LNK2019: unresolved external symbol "public: static class log4cplus::Logger __cdecl log4cplus::Logger::getInstance(class std::basic_string<wchar_t,struct std::char_traits<wchar_t>,class std::allocator<wchar_t> > const &)" ([email protected]@[email protected]@[email protected][email protected][email protected][email protected]@@[email protected][email protected]@@[email protected]@@Z) referenced in function "class log4cplus::Logger __cdecl Log(void)" ([email protected]@[email protected]@@XZ)
Hay 4 errores más al igual que esta relacionada con las funciones dentro log4cplus.lib.
Parece que algo realmente estúpido .. por favor me ayude :)
Gracias!
Editar:
estoy vinculado con el archivo log4cplus.lib, y lo encuentra muy bien. también, el log4cplus.lib es 100% funcional, lo estoy usando en otro proyecto sin problemas. Mi intención original era compilar mi proyecto como una biblioteca estática y utilizarlo en otro DLL que estoy escribiendo, pero cuando hacer esto, tengo los mismos errores de enlace en ese otro proyecto ...
Edición # 2:
Las funciones que causan los errores del enlazador son funciones estáticas ... ¿podría ser esto parte del problema?
sí, estoy enlazando con el archivo log4cplus.lib ... – Roey
OK fresco - y está en la ruta de la biblioteca? – trojanfoe
sí, encuentra el archivo con seguridad (cuando cambio el nombre de la libración a una compilación falsa falla de inmediato) ... No entiendo por qué no encuentra estas funciones dentro de log4cplus.lib ... :( – Roey