La vinculación con la biblioteca en la versión y .exe en errores de depuración en Visual Studio
Estoy usando Visual C ++ 2008 SP1. Tengo una aplicación que se compila en modo de depuración, pero enlaza con una biblioteca en modo de lanzamiento.
Tengo un fallo en el inicio de la aplicación. Para reducir el problema, creé una solución simple con 2 proyectos:
lib_release (genera un .lib, en modo de lanzamiento)exec_using_lib_release (genera un .exe, en modo de depuración)El proyecto 'lib_release' es lo suficientemente simple como para tener una clase simple:
//Foo.h
#include <vector>
class Foo {
std::vector<int> v;
public:
void doSomething();
};
//Foo.cpp
#include "Foo.h"
void Foo::doSomething() {}
El proyecto 'exec_using_lib_release' es simple como este:
//main.cpp
#include "Foo.h"
int main() {
Foo foo;
foo.doSomething();
return 0;
}
Y se estrella, es el mismo problema reportado por¿Cómo compilar un debug .exe (MSVCRTD.lib) en contra de un lanzamiento construido lib (MSVCRT.lib)?, pero su respuesta no funcionó para mí.
Recibo las mismas advertencias del enlazador, intenté los mismos pasos, pero ninguno funcionó. ¿Se me escapa algo?
EDITAR:
En lib_release (que crea una biblioteca en modo de lanzamiento), estoy usandoMulti Roscado (/ MT), y en el exec_using_lib_release, estoy usandoDepuración multiproceso (/ MTd). Creo que esta es la forma esperada de hacerlo, ya que quiero que se cree .lib sin información de depuración. Leo el documento enBiblioteca de tiempo de ejecución de MSDN y esos son los ajustes de vinculación contra el CRT de forma estática.
Tampoco tengo 'Common Language Runtime Support'.