Estoy intentando seguir un sencillo tutorial de impulso :: hilo (ver 1.4-3) en VS 2008:impulso :: hilo error de generación (incapaz de enlazar lib && sin resolver externo)
#include <boost/thread/thread.hpp>
void Func()
{
// Do something
}
void main()
{
boost::thread _thrd(&Func);
_thrd.join();
....
}
Durante la compilación se produce este error:
Error 1 fatal error LNK1104: cannot open file 'libboost_thread-vc90-mt-gd-1_43.lib' CConsole
, que tengo que resolver mediante la adición de #define BOOST_ALL_NO_LIB
. Sin embargo, me da otro error:
Error 3 fatal error LNK1120: 2 unresolved externals
C:\xx\Documents\Visual Studio 2008\Projects\CConsole\Debug\CConsole.exe
Error 1 error LNK2019: unresolved external symbol "public: __thiscall boost::thread::~thread(void)" ([email protected]@@[email protected]) referenced in function _wmain CConsole.obj
Error 2 error LNK2019: unresolved external symbol "private: void __thiscall boost::thread::start_thread(void)" ([email protected]@[email protected]@AAEXXZ) referenced in function "public: __thiscall boost::thread::thread<void (__cdecl*)(void)>(void (__cdecl*)(void),struct boost::thread::dummy *)" ([email protected]@[email protected]@[email protected]@[email protected]@Z) CConsole.obj
¿Alguien sabe cómo resolver el problema?
Gracias.
No todas las partes de Boost son solo de encabezado. Debe incluir los archivos cpp apropiados (no recomendados) o (generalmente mejor) crear una biblioteca estática a la que pueda vincular su proyecto. – stinky472
Hola stinky472, Conecto el archivo lib, sin embargo, veo que el nombre del archivo es la diferencia de bits, así que renombro el archivo y parece que funciona. Gracias. – csa
el nombre de la lib cambia dependiendo de qué tipo de lib compila: estático/dinámico, depuración/liberación, simple/multiproceso ... NO debe cambiar el nombre, sino compilar la lib correcta que necesita utilizando parámetros para la biblioteca. bjam-builder. – nabulke