Я столкнулся с этим с помощью Visual Studio 2017. Я попробовал решения, предложенные здесь, с явным добавлением путей к месту расположения файла «MSVCRT.lib».Но я чувствовал, что это, вероятно, не правильный подход, потому что ранее в течение последних нескольких недель это не было проблемой с моим проектом.
После проб и ошибок я обнаружил, что если я оставлю пустое или пустое значениев разделе Linker -> Input мне выдаст ошибку об LNK1104: невозможно открыть файл 'MSVCRT.lib'.В конце концов я понял, что вместо этого я должен оставить это значение.
В проекте Visual Studio, щелкнув правой кнопкой мыши элемент проекта на панели обозревателя решений (не само решение, которое является самым верхним элементом),затем выберите Свойства.Оттуда сделайте следующее:
Linker -> Input : % (AdditionalDependencies)
Эта дополнительная информация может быть полезна, если вы получилив ситуацию так же, как я сделал.Я обнаружил, что я не должен помещать какие-либо несистемные пути к библиотекам в раздел Linker -> Input.С моим проектом я пытался скомпилировать с внешними .lib файлами.Ранее у меня было значение в этом разделе ввода, например: $ (ProjectDir) lib;% (AdditionalDependencies) но это приводит к другим проблемам.Я обнаружил, что правильное место (кажется, до сих пор) для размещения путей для ссылки на внешние файлы .lib в проекте C / C ++ в Visual Studio 2017 находится здесь:
Каталоги VC ++ -> Каталоги библиотек : $ (ProjectDir) lib;$ (LibraryPath)
Обратите внимание, что значение $ (LibraryPath) будет включать дополнительные значения, такие как унаследованные от родителей.Мой проект папок содержал папку с именем 'lib', поэтому у меня было первое значение перед точкой с запятой.