Не удается открыть файл atls.lib

У меня есть atls.lib на моем жестком диске, но я не могу связать его с моим проектом Visual Studio. Я знаю, что atls.lib - это специальный библиотечный файл ATL, и у меня есть все ATL-файлы / заголовки / библиотеки. Тем не менее, я до сих пор не могу связать их.

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

Может ли кто-нибудь помочь беспомощному программисту?

Большое спасибо.

4 ответа

Исправлено использование 32-разрядного драйвера с использованием VS2019 путем установки следующего отдельного компонента через установщик Visual Studio:

  • C++ ATL для новейших инструментов сборки v142 с Spectre Mitigations (x86 и x64)

В моем случае проблема заключалась в отсутствии библиотек ATL/MFC для x64, мне пришлось добавить их в установщик Visual Studio (это был проект с открытым исходным кодом, поэтому я не знал об этом требовании).

Еще раз, бесценный procmon сделал работу:
В то время как atls.lib был найден под $(VCInstallDir)atlmfc\lib компоновщик заглянул в $(VCInstallDir)atlmfc\lib\amd64,

Просто чтобы держать этот вопрос в актуальном состоянии, я столкнулся с этой ошибкой после запуска установки для Specter, инструмента уменьшения кода спецификации VC++. Посмотрев каталоги VC++, я заметил, что и каталоги включения, и каталоги библиотек изменились, добавив к пути добавление "Спектр", в то время как исходный путь к фактическому файлу больше не существует. Я обновлю это позже, когда выясню, правильно ли был установлен Specter, или если просто изменение пути решит проблему; Я НЕ хочу, чтобы в моем коде была раскрыта спекулятивная атака, что, очевидно, происходит с кодом ATL.

РЕДАКТИРОВАТЬ

Мой компилятор VS VS Community Edition.

РЕДАКТИРОВАТЬ

Решение, которое сработало для меня, здесь, открыто Хольгером Шмекеном

Кажется, что каталог библиотеки не был добавлен. В свойствах проекта, компоновщик, общие параметры, добавьте каталог, где atls.lib проживает в Additional Library Directories поле.

Я добавил <Visual Studio folder\VC\Tools\MSVC\14.15.26726\atlmfc\lib\x64\atls.lib> к Linker>Input> Additional Dependencies в свойствах решения, и это было решено.

Эта проблема стала возникать у меня после недавнего обновления VS2019, которое я получил. Я заметил, что это произошло потому, что Spectre Mitigation была включена автоматически, но у меня не было версии библиотеки Spectre Mitigation.

Возможными исправлениями являются установка версии Spectre Mitigation или отключение Spectre Mitigation.

Я решил эту проблему, просто скопировав этот файл в папку моего проекта.

Другие вопросы по тегам