Подтвердить что ты не робот

LINK: фатальная ошибка LNK1104: невозможно открыть файл 'MSVCRTD.lib'

Я начинающий разработчик C++. В сообщении об ошибке указано, что "ССЫЛКА: фатальная ошибка LNK1104: не удается открыть файл" MSVCRTD.lib "", когда я пытаюсь отладить каждый проект в Microsoft Visual C++ 2010 Express. Я искал переполнение стека и Google для любого возможного разрешения, но я не мог найти точный и точный ответ. Я понял, что файл "msvcrtd.lib" должен находиться в "\ Microsoft Visual Studio 10.0\VC\lib", но в моем случае этого файла нет. Что я должен делать?

4b9b3361

Ответ 1

Перейдите к свойствам вашего проекта, выберите Linker слева. Добавьте это в " Дополнительные каталоги библиотек":

"(Your Visual Studio Path)\VC\lib"

Например:

C:\Program Files\Microsoft Visual Studio 10.0\VC\lib

Ответ 2

Для бедных людей, которые борются с этим, после часа исследований я нашел решение для моей Visual Studio Enterprise 2017:

Сначала давайте найдем, где находится файл вашей библиотеки:

С помощью проводника Windows перейдите в каталог, в котором установлена Visual Studio (по умолчанию: C:\Program Files (x86)\Microsoft Visual Studio), и выполните поиск по msvcrtd.lib.

Я нашел мой, чтобы быть здесь:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.15.26726\lib\onecore\x86

Быстрое исправление (только для одного проекта):

  1. Щелкните правой кнопкой мыши по вашему проекту, щелкните по свойствам, перейдите к Linker, добавьте этот путь в Дополнительные каталоги библиотек enter image description here

Постоянное исправление (для всех проектов)

  1. Открыть проект
  2. перейдите к View> Property Manager (это может быть в других окнах)
  3. Разверните все папки и выберите несколько " Microsoft.cpp.Win32.user " и " Microsoft.cpp.64.user "

enter image description here

  1. Щелкните правой кнопкой мыши и перейдите к свойствам
  2. Перейдите в каталог VC++ enter image description here.

  3. Добавьте путь к каталогам библиотеки по умолчанию

Ответ 3

В некоторых диалоговых окнах свойств в свойствах проекта есть флажок, указывающий "Наследовать от родительских или проектов по умолчанию" . Убедитесь, что флажок флажка Включить и Библиотека отмечен флажком и, конечно, для окна Дополнительные зависимости.

Ответ 4

Я столкнулся с этим вопросом. Файл существовал на моей машине, он был в пути поиска. Я был озадачен, так как результат ошибки действительно бесполезен. В моем случае я включил смягчение Spectre, но не загрузил библиотеки времени выполнения для Spectre. Как только я сделал загрузку, все было в порядке с миром. Я должен был установить это на своих серверах сборки CI, так как эти библиотеки не установлены с VS по умолчанию.

Ответ 5

также стоит проверить, что файл MSVCRTD.lib присутствует в "C:\Program Files\Microsoft Visual Studio 10.0\VC\lib" для x64 и в C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib для 32 бит. Иногда VS может быть неправильно установлен или эти файлы могут быть удалены случайно.

Ответ 6

Сценарий:

  1. Windows 10 с Visual Studio 2017 (установка FRESH).

  2. Проект 'C' (ССЫЛКА: фатальная ошибка LNK1104: не удается открыть файл ' MSVCRTD.lib ').

Разрешить:

  1. Запустите " Установщик Visual Studio ".

  2. Нажмите кнопку "Изменить".

  3. Выберите " Разработка рабочего стола с помощью C++ ".

  4. В разделе "Сведения об установке" (обычно на правой боковой панели) выберите:

    4.1. V C++ 2015.3 v14.00 (v140) набор инструментов для рабочего стола.

    • Версия набора инструментов в 4.1. это только для примера.
  5. Нажмите кнопку "Изменить", чтобы применить изменения.
  6. Щелкните правой кнопкой мыши "SomeProject" → "Свойства" → " Линкер " → " Общие " → " Дополнительные каталоги библиотек ": $ (VCToolsInstallDir)\lib\x86

    (!!! для проекта x64: "Дополнительные каталоги библиотек": $ (VCToolsInstallDir)\lib\x64 !!!)

Ответ 7

Я решил эту проблему, вам нужно установить все спектры lib. Vistual Studio Installer-> Изменить → Component-> Любой призрак lib. Это решение может быть адаптировано к любому проекту.

Ответ 9

Если вы используете VS2017, пожалуйста, прочитайте его. Или просто проигнорируйте этот ответ... Он может быть недействительным для другой версии VS.

Не доверяйте никому, кто сказал вам, чтобы добавить путь к lib.

Вот предложения:

  • [ЛУЧШИЙ] Вам просто нужно установить их через VS_installer (большинству из нас просто нужна версия для x86/x64 ниже)
    • VC++ версия 2017 года version_numbers Libs для Spectre [(x86 и x64) | (ARM) | (ARM64)]
    • Визуальный C++ ATL для [(x86/x64) | ARM | ARM64] с призраками
    • Визуальный C++ MFC для [x86/x64 | ARM | ARM64] с призраками
  • [НАИВ] или отключите функцию " Spectre для каждого решения (почему нам так сложно отключить его)
  • [СМЕХ] Или никогда не используйте VS2017

Это ошибка VisualStudioTeam, и Microsoft виновата.

Зачем?

Вы не можете создать глобальную конфигурацию для отключения /QSpectre и IDK, когда и почему VS2017 включит его за один день. Так что лучше всего установить Spectre? ahhha?

Ответ 10

Я столкнулся с этой проблемой при компиляции примера приложения с использованием VS2017 Надеюсь, это поможет

enter image description here

Ответ 11

Этот ответ был не совсем точным для меня. У меня установлен VS2010 Ultimate, и этот файл не находится в моей папке Visual Studio 10.0\VC. Скорее я нашел его в папке Visual Studio 9.0\VC. Поэтому, если это относится к кому-либо, следуйте указаниям, чтобы изменить Linker, но вместо этого используйте папку Visual Studio 9.0\VC. Это сработало для меня.

Ответ 12

Я решил проблему, добавив #using <mscorlib.dll> в основной файл

Ответ 13

Для Visual Studio 2017 Перейдите к свойствам вашего проекта, выберите Linker слева. Добавьте это в "Дополнительные библиотечные каталоги":

C:\Program Files (x86)\Microsoft Visual Studio\Shared\14.0\VC\lib

Ответ 14

Я получил немного другую ошибку

LNK1104 не может открыть файл 'MSVCURTD.lib'

Обратите внимание, что это msvcUrtd (не msvcrtd), но файл не найден в моей системе.

Решил это, установив следующие параметры:

Project Properties
 General
  Character Set: Not Set
  Common Language Runtime Support: Common Language Runtime Support (/clr)

Надеюсь, это поможет.

Ответ 15

В VS2017 (Сообщество/Предприятие /Ultimate/Professional):

Добавьте путь (и) к папке (папкам), которые включают в себя желаемый файл (ы).lib, по следующему пути в VS:

Проект (щелкните правой кнопкой мыши) (в обозревателе решений) → Properties-> Конфигурация Properties-> Linker → General-> Дополнительные каталоги библиотек

Если существует более одного файла ".lib", используйте ';' чтобы разделить их, в противном случае нажмите на поле редактирования, соответствующее "Дополнительные каталоги библиотек", затем нажмите "" в выпадающем меню и добавьте все нужные файлы ".lib" в открывшемся окне один за другим и в удобной для пользователя форме.

Ответ 16

Я столкнулся с этим с помощью 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 находится здесь:

V C++ Каталоги → Библиотечные каталоги: $ (ProjectDir) lib; $ (LibraryPath)

Обратите внимание, что значение $ (LibraryPath) будет включать дополнительные значения, такие как унаследованные от родителей. Мой проект папок содержал папку с именем "lib", поэтому у меня было первое значение перед точкой с запятой.

Ответ 17

Перейдите в ПроектСвойстваC/C++Генерация кодаСмягчение последствийОтключено enter image description here

Ответ 18

Я включил следующий путь

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\lib\x86 и
C:\Local\boost_1_64_0\lib64-MSVC-14,1

к

проект properties-> linker-> Дополнительные каталоги

введите описание изображения здесь

Ответ 19

Для VS 2019 функция смягчения последствий включена по умолчанию. Таким образом, правильным способом решения этой проблемы будет установка VC++ Libs для Spectre.

Но, чтобы быстро решить проблему, вы можете отключить Призрачное смягчение

Project Properties → C/C++ → Code Generation → Spectre Mitigation → Disabled

enter image description here

https://devblogs.microsoft.com/cppblog/spectre-mitigations-in-msvc/

Ответ 20

Это указывает на то, что Visual Studio не удалось найти каталог lib (Library), который содержит msvcrtd.lib.

ВАЖНО: Этот каталог lib также содержит компоновщики, необходимые во время процесса компиляции.

Итак, все, что вам нужно сделать, это переопределить расположение каталога библиотеки. Вы можете сделать это с помощью переменных среды.

Я обратился к этой публикации StackOverflow за помощью. Согласно опубликованному ответу, переменная среды LIB относится к пути, где расположены библиотеки линкеров. Почему этот метод лучше? Потому что это будет применяться ко всем проектам, а не только к конкретному проекту. Кроме того, вам не нужно ничего загружать. Это просто работает...

Выполните следующие шаги, чтобы достичь этого:

ШАГ-1: Поиск "msvcrtd.lib" в строке поиска.

ШАГ-2: Нажмите "Открыть местоположение файла" (доступно в контекстном меню)

enter image description here

ШАГ-3: Скопируйте адрес каталога из адресной строки.

enter image description here

ШАГ 4: Найдите "Среда" на панели задач и нажмите "Изменить системные переменные среды".

enter image description here

ШАГ 5: Нажмите кнопку "Переменные среды...".

enter image description here

ШАГ-6: В разделе "Системные переменные" нажмите кнопку "Создать...". Диалог появится.

enter image description here

ШАГ-7: В диалоговом окне введите следующее:

  • Имя переменной: LIB
  • Значение переменной: [каталог, который вы скопировали в "ШАГ-3"]

И нажмите "ОК"

enter image description here

Теперь все готово!