Das Verknüpfen der Bibliothek in Release und der EXE-Datei in Debug stürzt in Visual Studio ab

Ich verwende Visual C ++ 2008 SP1. Ich habe eine App, die im Debug-Modus kompiliert wurde, die jedoch im Release-Modus mit einer Bibliothek verknüpft ist.

Beim Starten der Anwendung kommt es zu einem Absturz. Um das Problem zu verkleinern, habe ich eine einfache Lösung mit 2 Projekten erstellt:

lib_release (erzeugt im Release-Modus eine .lib)exec_using_lib_release (generiert eine .exe im Debug-Modus)

Das Projekt 'lib_release' ist einfach genug, um eine einfache Klasse zu haben:

//Foo.h
#include <vector>
class Foo {
  std::vector<int> v;
  public:
  void doSomething();
};
//Foo.cpp
#include "Foo.h"
void Foo::doSomething() {}

Das Projekt 'exec_using_lib_release' ist so einfach:

//main.cpp
#include "Foo.h"
int main() {
   Foo foo;
   foo.doSomething();
   return 0;
}

Und es stürzt ab, es ist das gleiche Problem, von dem berichtet wurdeWie erstellen Sie eine Debug-EXE-Datei (MSVCRTD.lib) für eine veröffentlichte Bibliothek (MSVCRT.lib)?, aber seine Antwort hat bei mir nicht funktioniert.

Ich bekomme die gleichen Linker-Warnungen, ich habe die gleichen Schritte versucht, aber keiner hat funktioniert. Fehlt mir etwas?

BEARBEITEN:

Auf der lib_release (die eine Bibliothek im Release-Modus erstellt) verwende ichMulti Threaded (/ MT)und beim exec_using_lib_release verwende ichMulti Threaded Debug (/ MTd). Ich denke, dies ist die erwartete Vorgehensweise, da die .lib ohne Debug-Informationen erstellt werden soll. Ich habe das Dokument unter gelesenMSDN Runtime-Bibliothek und dies sind die Einstellungen für die statische Verknüpfung mit der CRT.

Ich habe auch keine Unterstützung für Common Language Runtime.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage