我的硬盘中有atls.lib,但我无法将其链接到我的Visual Studio项目中。我知道atls.lib是一个ATL特定的库文件,我有所有的ATL文件/头文件库。但是,我仍然无法链接它们。
LINK:致命错误LNK1104:无法打开文件'atls.lib'
任何人都可以帮助一个无助的程序员吗?
非常感谢你。
答案 0 :(得分:5)
似乎尚未添加库目录。在“项目属性”,“链接器”,“常规”选项中,将atls.lib
所在的目录添加到Additional Library Directories
字段。
答案 1 :(得分:5)
在我的情况下,问题是缺少用于x64的ATL / MFC库,我不得不在Visual Studio安装程序中添加它们(它是一个开源项目,所以我不知道这个要求)。
再次,宝贵的procmon完成了这项工作:
在$(VCInstallDir)atlmfc\lib
下找到 atls.lib 时,链接器查找了$(VCInstallDir)atlmfc\lib\amd64
。
答案 2 :(得分:2)
通过在Visual Studio安装程序中安装以下单个组件,修复了我使用VS2019运行32位驱动程序的问题:
答案 3 :(得分:1)
通过将文件复制到我的项目文件夹中,我解决了这个问题。
答案 4 :(得分:1)
我在解决方案属性的<Visual Studio folder\VC\Tools\MSVC\14.15.26726\atlmfc\lib\x64\atls.lib>
中添加了Linker>Input> Additional Dependencies
,并解决了该问题。
答案 5 :(得分:0)
为保持此问题的更新,我在为Spectre(VC ++规范代码缓解工具)运行安装后遇到了此错误。查看VC ++目录后,我注意到包含目录和库目录都已更改,以在路径中添加“ Spectre”,而实际文件的原始路径不再存在。在确定Spectre是否安装不正确,或者只是更改路径即可解决问题之后,我将在稍后进行更新。我不希望在我的代码中暴露投机性攻击,这显然是在ATL代码中发生的。
编辑
我的编译器是VS 2017 Community Edition。
编辑
最有效的解决方案是here,由Holger Schmeken发现
答案 6 :(得分:0)
我最近获得VS2019更新后,这个问题开始发生在我身上。我注意到这是因为Spectre Mitigation已自动启用,但我没有该库的Spectre Mitigation版本。
安装Spectre Mitigation版本或禁用Spectre Mitigation都是可能的修复程序。