ССЫЛКА: фатальная ошибка LNK1104: не удается открыть файл 'MSVCRTD.lib' - PullRequest
23 голосов
/ 03 июня 2011

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

Ответы [ 19 ]

0 голосов
/ 15 февраля 2019

Я столкнулся с этим с помощью 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', поэтому у меня было первое значение перед точкой с запятой.

0 голосов
/ 28 сентября 2012

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

0 голосов
/ 20 мая 2019

Для 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/

0 голосов
/ 11 сентября 2017

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

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

0 голосов
/ 09 мая 2015

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

0 голосов
/ 15 мая 2019

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

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

В

свойства проекта-> компоновщик-> Дополнительные каталоги

Нажмите здесь: изображение показывает связывание надстройкии MSVC2017

0 голосов
/ 26 декабря 2018

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

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

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

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

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

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

0 голосов
/ 07 июня 2019

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

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

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

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

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

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

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

enter image description here

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

enter image description here

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

enter image description here

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

enter image description here

STEP-6: В разделе «Системные переменные» нажмите кнопку «Создать ...». Появится диалоговое окно.

enter image description here

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

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

и нажать «ОК»

enter image description here

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

0 голосов
/ 08 февраля 2019

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

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

(Щелкните правой кнопкой мыши) Проект (в обозревателе решений) -> Свойства-> Свойства конфигурации-> Компоновщик-> Общие-> Дополнительные каталоги библиотеки

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...