Estoy intentando construir una biblioteca estática C/C++ usando visual studio 2005. Como la selección de la biblioteca de tiempo de ejecución es una opción de compilación, me veo forzado a crear cuatro variaciones de mi biblioteca, una para cada variación de la biblioteca de tiempo de ejecución :¿Por qué la biblioteca de tiempo de ejecución es una opción de compilación en lugar de una opción de enlazador?
- /MT - biblioteca de ejecución estática
- /MD - biblioteca de tiempo de ejecución DLL
- /MTd - depuración en tiempo de ejecución estática biblioteca
- /MDd - depuración DLL de tiempo de ejecución biblioteca
Estas son opciones de compilador, no opciones de enlazador. Viniendo de un fondo de Linux, esto parece extraño. ¿Las diferentes bibliotecas de tiempo de ejecución tienen diferentes convenciones de llamadas o algo así? ¿Por qué no se pueden resolver las diferentes bibliotecas de tiempo de ejecución en tiempo de enlace, es decir, cuando enlace la aplicación que utiliza mi biblioteca estática?
Si bien parece que hay buenas razones para esto en las respuestas, estoy de acuerdo con usted. Siempre termino buscando esta configuración en el lugar equivocado. Lo mismo con la configuración de los encabezados precompilados: tiene su propia categoría en lugar de ser algo en la sección Preprocesador. –