Не удается открыть файл 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.
Я решил эту проблему, просто скопировав этот файл в папку моего проекта.