无法打开文件atls.lib

时间:2012-06-20 15:37:15

标签: linker atl visual-c++-2008-express

我的硬盘中有atls.lib,但我无法将其链接到我的Visual Studio项目中。我知道atls.lib是一个ATL特定的库文件,我有所有的ATL文件/头文件库。但是,我仍然无法链接它们。

LINK:致命错误LNK1104:无法打开文件'atls.lib'

任何人都可以帮助一个无助的程序员吗?

非常感谢你。

7 个答案:

答案 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位驱动程序的问题:

  • 具有Spectre缓解措施(x86和x64)的最新v142构建工具的C ++ ATL

答案 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都是可能的修复程序。