Я начинающий разработчик C++. В сообщении об ошибке указано, что "ССЫЛКА: фатальная ошибка LNK1104: не удается открыть файл" MSVCRTD.lib "", когда я пытаюсь отладить каждый проект в Microsoft Visual C++ 2010 Express. Я искал переполнение стека и Google для любого возможного разрешения, но я не мог найти точный и точный ответ. Я понял, что файл "msvcrtd.lib" должен находиться в "\ Microsoft Visual Studio 10.0\VC\lib", но в моем случае этого файла нет. Что я должен делать?
LINK: фатальная ошибка LNK1104: невозможно открыть файл 'MSVCRTD.lib'
Ответ 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
Быстрое исправление (только для одного проекта):
- Щелкните правой кнопкой мыши по вашему проекту, щелкните по свойствам, перейдите к Linker, добавьте этот путь в Дополнительные каталоги библиотек
Постоянное исправление (для всех проектов)
- Открыть проект
- перейдите к View> Property Manager (это может быть в других окнах)
- Разверните все папки и выберите несколько " Microsoft.cpp.Win32.user " и " Microsoft.cpp.64.user "
- Щелкните правой кнопкой мыши и перейдите к свойствам
-
Перейдите в каталог VC++ .
-
Добавьте путь к каталогам библиотеки по умолчанию
Ответ 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
Сценарий:
-
Windows 10 с Visual Studio 2017 (установка FRESH).
-
Проект 'C' (ССЫЛКА: фатальная ошибка LNK1104: не удается открыть файл ' MSVCRTD.lib ').
Разрешить:
-
Запустите " Установщик Visual Studio ".
-
Нажмите кнопку "Изменить".
-
Выберите " Разработка рабочего стола с помощью C++ ".
-
В разделе "Сведения об установке" (обычно на правой боковой панели) выберите:
4.1. V C++ 2015.3 v14.00 (v140) набор инструментов для рабочего стола.
- Версия набора инструментов в 4.1. это только для примера.
- Нажмите кнопку "Изменить", чтобы применить изменения.
-
Щелкните правой кнопкой мыши "SomeProject" → "Свойства" → " Линкер " → " Общие " → " Дополнительные каталоги библиотек ": $ (VCToolsInstallDir)\lib\x86
(!!! для проекта x64: "Дополнительные каталоги библиотек": $ (VCToolsInstallDir)\lib\x64 !!!)
Ответ 7
Я решил эту проблему, вам нужно установить все спектры lib. Vistual Studio Installer-> Изменить → Component-> Любой призрак lib. Это решение может быть адаптировано к любому проекту.
Ответ 8
Для меня эта проблема возникает после установки (Windows Driver Kit): https://docs.microsoft.com/en-us/windows-hardware/drivers/download-the-wdk
Удаление это решает проблему. Просто публикация здесь как связанная проблема для людей, ищущих решения: После установки WDK VC++ не работает
Ответ 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 Надеюсь, это поможет
Ответ 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++ → Генерация кода → Смягчение последствий → Отключено
Ответ 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
https://devblogs.microsoft.com/cppblog/spectre-mitigations-in-msvc/
Ответ 20
Это указывает на то, что Visual Studio не удалось найти каталог lib
(Library), который содержит msvcrtd.lib
.
ВАЖНО: Этот каталог lib
также содержит компоновщики, необходимые во время процесса компиляции.
Итак, все, что вам нужно сделать, это переопределить расположение каталога библиотеки. Вы можете сделать это с помощью переменных среды.
Я обратился к этой публикации StackOverflow за помощью. Согласно опубликованному ответу, переменная среды LIB
относится к пути, где расположены библиотеки линкеров. Почему этот метод лучше? Потому что это будет применяться ко всем проектам, а не только к конкретному проекту. Кроме того, вам не нужно ничего загружать. Это просто работает...
Выполните следующие шаги, чтобы достичь этого:
ШАГ-1: Поиск "msvcrtd.lib" в строке поиска.
ШАГ-2: Нажмите "Открыть местоположение файла" (доступно в контекстном меню)
ШАГ-3: Скопируйте адрес каталога из адресной строки.
ШАГ 4: Найдите "Среда" на панели задач и нажмите "Изменить системные переменные среды".
ШАГ 5: Нажмите кнопку "Переменные среды...".
ШАГ-6: В разделе "Системные переменные" нажмите кнопку "Создать...". Диалог появится.
ШАГ-7: В диалоговом окне введите следующее:
- Имя переменной: LIB
- Значение переменной: [каталог, который вы скопировали в "ШАГ-3"]
И нажмите "ОК"