¿Cómo vincular a libs de impulso dynamic?

Compilé boost lib y obtuve estos.

//Shared/dynamic link libraries 24/03/2010 11:25 PM 53,248 boost_thread-vc80-mt-1_42.dll 24/03/2010 11:25 PM 17,054 boost_thread-vc80-mt-1_42.lib 24/03/2010 11:25 PM 17,054 boost_thread-vc80-mt.lib 24/03/2010 11:25 PM 73,728 boost_thread-vc80-mt-gd-1_42.dll 24/03/2010 11:25 PM 17,214 boost_thread-vc80-mt-gd-1_42.lib 24/03/2010 11:25 PM 17,214 boost_thread-vc80-mt-gd.lib // Static libs... does not need any dlls 24/03/2010 11:25 PM 381,716 libboost_thread-vc80-mt-1_42.lib 24/03/2010 11:25 PM 381,716 libboost_thread-vc80-mt.lib 24/03/2010 11:25 PM 999,552 libboost_thread-vc80-mt-gd-1_42.lib 24/03/2010 11:25 PM 999,552 libboost_thread-vc80-mt-gd.lib 24/03/2010 11:25 PM 421,050 libboost_thread-vc80-mt-s-1_42.lib 24/03/2010 11:25 PM 421,050 libboost_thread-vc80-mt-s.lib 24/03/2010 11:25 PM 1,015,688 libboost_thread-vc80-mt-sgd-1_42.lib 24/03/2010 11:25 PM 1,015,688 libboost_thread-vc80-mt-sgd.lib 

En Visual Studio, he escrito una aplicación de prueba utilizando la biblioteca de subprocesos. En función de la configuración de generación de código, solo solicita estas cuatro librerías (como multithreading debug, multithreading, multithreading debug dll y multithreading dll)

 24/03/2010 11:25 PM 381,716 libboost_thread-vc80-mt-1_42.lib 24/03/2010 11:25 PM 381,716 libboost_thread-vc80-mt.lib 24/03/2010 11:25 PM 999,552 libboost_thread-vc80-mt-gd-1_42.lib 24/03/2010 11:25 PM 999,552 libboost_thread-vc80-mt-gd.lib 24/03/2010 11:25 PM 421,050 libboost_thread-vc80-mt-s-1_42.lib 24/03/2010 11:25 PM 421,050 libboost_thread-vc80-mt-s.lib 24/03/2010 11:25 PM 1,015,688 libboost_thread-vc80-mt-sgd-1_42.lib 24/03/2010 11:25 PM 1,015,688 libboost_thread-vc80-mt-sgd.lib 

Ahora mi pregunta es ¿cómo puedo vincular mi aplicación a las otras 2 libs para que use los dlls?

 24/03/2010 11:25 PM 53,248 boost_thread-vc80-mt-1_42.dll 24/03/2010 11:25 PM 17,054 boost_thread-vc80-mt-1_42.lib 24/03/2010 11:25 PM 17,054 boost_thread-vc80-mt.lib 24/03/2010 11:25 PM 73,728 boost_thread-vc80-mt-gd-1_42.dll 24/03/2010 11:25 PM 17,214 boost_thread-vc80-mt-gd-1_42.lib 24/03/2010 11:25 PM 17,214 boost_thread-vc80-mt-gd.lib 

Pregunta 2. ¿Qué significa la g, s?

Puede forzar a Boost a usar los archivos DLL definiendo BOOST_ALL_DYN_LINK , ya sea en la configuración del preprocesador de C ++ o mediante un #define en su encabezado precomstackdo stdafx.h , por ejemplo:

#define BOOST_ALL_DYN_LINK

Para configurar el refuerzo use el encabezado de configuración del usuario

  

Luego solo busque las líneas de enlace dynamic y cambie a la configuración deseada

 // BOOST_ALL_DYN_LINK: Forces all libraries that have separate source, // to be linked as DLL's rather than static libraries on Microsoft Windows // (this macro is used to turn on __declspec(dllimport) modifiers, so that // the compiler knows which symbols to look for in a DLL rather than in a // static library). Note that there may be some libraries that can only // be statically linked (Boost.Test for example) and others which may only // be dynamically linked (Boost.Threads for example), in these cases this // macro has no effect. // #define BOOST_ALL_DYN_LINK 
  1. Los archivos .lib están vinculados estáticamente, mientras que los archivos .dll están vinculados dinámicamente. Creo que es una configuración de proyecto de VC.

 El prefijo "lib" es para bibliotecas estáticas.  Usar link = static 
 La letra 's' es para enlazar estático con el tiempo de ejecución.  Usar runtime-link = static 
 La 'd' es la depuración, use variant = depuración 
 La 'g' usa tiempo de ejecución de depuración, creo que está incluida en la variante 'depurar' 
 ya.  Si no runtime-debugging = on te ayudará. 

Fuente: http://old.nabble.com/Build-statically-linked-boost-libs- * -vc90-mt-sgd.lib-td16301103.html