Связывание с библиотекой в выпуске и .exe в случае отладки в Visual Studio
Я использую Visual C ++ 2008 SP1. У меня есть приложение, которое компилируется в режиме отладки, но ссылки на библиотеку в режиме выпуска.
У меня сбой при запуске приложения. Чтобы уменьшить проблему, я создал простое решение с двумя проектами:
lib_release (generates a .lib, in release mode) exec_using_lib_release (genereates a .exe, in debug mode)«Lib_release» Проект достаточно прост, чтобы иметь простой класс:
//Foo.h
#include <vector>
class Foo {
std::vector<int> v;
public:
void doSomething();
};
//Foo.cpp
#include "Foo.h"
void Foo::doSomething() {}
«Exec_using_lib_release» Проект прост, как это:
//main.cpp
#include "Foo.h"
int main() {
Foo foo;
foo.doSomething();
return 0;
}
И это дает сбой, это та же проблема, о которой сообщаетКак создать отладочную версию .exe (MSVCRTD.lib) для библиотеки, выпущенной на основе релиза (MSVCRT.lib)?, но его ответ не сработал для меня.
Я получаю те же предупреждения компоновщика, я пробовал те же шаги, но ни один не работал. Я что-то пропустил?
EDIT:
В lib_release (который создает библиотеку в режиме выпуска) я используюMulti Threaded (/MT)и в exec_using_lib_release я используюMulti Threaded Debug (/MTd), Я думаю, что это ожидаемый способ сделать это, так как я хочу, чтобы .lib создавался без отладочной информации. Я читаю документ наБиблиотека времени выполнения MSDN и это настройки связывания с ЭЛТ статическим способом.
У меня нет поддержки общеязыковой поддержки во время выполнения. или.