Ошибка компоновщика memcmp Visual Studio 2015

У меня есть проект Visual Studio 2012 C ++.
Недавно я удалил его, установил Visual Studio 2015 и обновил проект.
Когда я строю проект, получаю ошибку, как показано ниже:

Ошибка LNK2019: неразрешенный внешний символ _memcmp, указанный в функции

Кроме того, я не использовал нигде в моем коде функции memcmp.

Я использовал многословную функцию компоновщика и мог видеть ниже в выходном файле:

Найдено _memcmp

Ссылка в MyC ++ Project.obj

Ссылка в libcpmtd.lib (xstrcoll.obj)

Загруженный libvcruntimed.lib (__ memcmp_.obj)

Два вопроса здесь

1. даже если я не использовал memcmp в своем коде, почему я получаю эту ошибку компоновщика?

2. почему memcmp загружается как __memcmp_.obj

У меня также есть следующие настройки в моем проекте:

1.C ++ -> Генерация кода -> Библиотека времени выполнения установлена ​​в / MTd

2.Linker -> Ignore. Все библиотеки по умолчанию не установлены.

Я перепробовал все настройки проекта, но все напрасно.

У меня есть проблема только с этой функцией memcmp, которую я не использовал.

Я использовал mamcpy и memset и не имею проблем с этими

2

Решение

Явно добавьте vcruntime.lib или другую подходящую версию ЭЛТ-библиотека к параметрам компоновщика (дополнительные зависимости).

Когда вы используете memcmp явно, он, вероятно, обрабатывается как внутренняя функция и компилируется как встроенная функция.

8

Другие решения

Попробуй добавить vcruntime.lib а также ucrt.lib к вашим дополнительным зависимостям. ===> Свойства-> Линкер-> Ввод-> Дополнительные зависимости

Образец пути 'vcruntime.lib': "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib\vcruntime.lib"

Образец пути 'ucrt.lib' : "C:\Program Files (x86)\Windows Kits\10\Lib\10.0.16299.0\ucrt\x86\ucrt.lib"

Моя среда: VS2017 (v141)

3

По вопросам рекламы [email protected]