2011-09-22 10 views
13

Estoy tratando de construir bibliotecas de impulso en Windows 7 con MSVC (VS 2010).Boost libs building - diferencia entre runtime-link y opciones de enlace

Me he encontrado con las opciones runtime-link y el enlace en las opciones de línea de comandos de bjam. Me gustaría saber cómo se usan y cuál es la diferencia exacta entre ellos.

he construido la biblioteca de expresiones regulares Boost utilizando esta línea de comandos

bjam --with-regex = variante liberación --build-options = completas

se han producido estos archivos:

1) boost_regex-VC100-mt-1_47.dll (importación de biblioteca: boost_regex-VC100-mt-1_47.lib)

2) libboost_regex-VC100-mt-1_47.lib

3) libboost_regex-VC100-mt-s-1_47.lib

4) libboost_regex-VC100-s-1_47.lib

¿Cuál es la diferencia entre los archivos .lib 2 y 3? Ambos son libs estáticos. He revisado el documento de Boost pero no encontré mucha explicación sobre eso.

TIA

Respuesta

15

runtime-link se refiere a cómo se vincula el tiempo de ejecución de su compilador. Es decir, corresponde a la opción Multithreaded de VC frente a Multithreaded DLL. Runtime significa los componentes necesarios para usar las bibliotecas estándar disponibles con su compilador.

Usted probablemente ha visto los archivos de vínculos dinámicos en algún momento: MSVCRTXX.DLL (C) y tiempo de ejecución MSVCPXX.DLL (C++ biblioteca estándar), MFCXX.DLL (clases core MFC). Las contrapartes estáticas son LIBC y LICBP (consulte here para la tabla de la biblioteca)

La opción de enlace de tiempo de ejecución que usa al generar Boost debe coincidir con la opción cuando está utilizando su código de cliente. De lo contrario, obtendrá errores debido a un tiempo de ejecución no coincidente, ya sea en tiempo de enlace o al ejecutar su programa.

Al crear su programa para utilizar el tiempo de ejecución del enlace dinámico, debe incluir el VC redistributable al implementar su aplicación.

link se refiere a cómo se vinculará la biblioteca de impulso a su edificio, ya sea como una biblioteca de enlace estático o dinámico.

Cuestiones relacionadas