По умолчанию Visual Studio компилирует проект для использования многопоточной DLL, найденной в среде выполнения Visual Studio. Я хочу скомпилировать свою программу, используя только/MT вместо/MD. Конечно, большинство систем уже установлено, и оно также доступно для перераспределения.Компиляция программы без многопоточной DLL (Visual C++ 2010)
Когда я меняю/MD в/MT, я получаю сообщение об ошибке:
MSVCRTD.lib(MSVCR100D.dll) : error LNK2005: _free already defined in LIBCMT.lib(free.obj)
И четыре или пять подобных ошибок. Чтобы исправить это, я удалил LIBCMT.LIB из библиотек по умолчанию.
Затем я получаю сообщение об ошибке:
libcpmt.lib(_tolower.obj) : error LNK2019: unresolved external symbol __calloc_crt referenced in function __Getctype
Удаление MSVCRTD.lib из списка по умолчанию приводит к подобным ошибкам? Следует отметить, что: -Это проект OpenGL, используя библиотеку glfw. -Я использую библиотеку изображений SOIL lonesock для загрузки текстуры.
Каковы ваши настройки сборки? Поскольку MSVCRTD является отладочной версией MSVCRT. – Bart
Возможный дубликат [Разрешение LNK4098: defaultlib «MSVCRT» конфликтует с] (http://stackoverflow.com/questions/3007312/resolving-lnk4098-defaultlib-msvcrt-conflicts-with) –