10

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

链接:致命错误 LNK1104:无法打开文件“atls.lib”

谁能帮助一个无助的程序员?

非常感谢。

4

7 回答 7

11

在我的情况下,问题是缺少 x64 的 ATL/MFC 库,我必须在 Visual Studio 安装程序中添加它们(这是一个开源项目,所以我不知道这个要求)。

再一次,无价的procmon完成了这项工作:
虽然在链接器下找到了atls.lib$(VCInstallDir)atlmfc\lib ,但在$(VCInstallDir)atlmfc\lib\amd64.

于 2016-02-18T08:44:52.293 回答
9

为了更新这个问题,我在运行安装 Spectre(VC++ 规范代码缓解工具)后遇到了这个错误。查看 VC++ 目录后,我注意到 Include Directories 和 Library Directories 都已更改为在路径中添加了“Spectre”,而实际文件的原始路径不再存在。在确定 Spectre 是否未正确安装,或者只是更改路径即可解决问题后,我将在稍后更新此内容;我不希望在我的代码中暴露投机攻击,这显然发生在 ATL 代码中。

编辑

我的编译器是 VS 2017 社区版。

编辑

对我有用的解决方案在这里,由 Holger Schmeken 发现

于 2019-03-13T15:00:29.607 回答
7

好像还没有添加库目录。在项目属性、链接器、常规选项中,将atls.lib驻留的目录添加到该Additional Library Directories字段。

于 2012-06-20T23:57:18.893 回答
7

通过 Visual Studio 安装程序安装以下单个组件,为我使用 VS2019 运行 32 位驱动程序修复:

  • 用于具有 Spectre 缓解(x86 和 x64)的最新 v142 构建工具的 C++ ATL
于 2020-09-09T16:09:18.583 回答
1

我添加<Visual Studio folder\VC\Tools\MSVC\14.15.26726\atlmfc\lib\x64\atls.lib>Linker>Input> Additional Dependencies 解决方案属性中,它得到了解决。

于 2018-11-27T21:05:12.867 回答
0

我只需将此文件复制到我的项目文件夹即可解决此问题。

于 2018-09-26T01:46:23.403 回答
0

在我获得最近的 VS2019 更新后,这个问题开始发生在我身上。我注意到这是因为 Spectre Mitigation 已自动启用,但我没有库的 Spectre Mitigation 版本。

安装 Spectre 缓解版本或禁用 Spectre 缓解都是可能的修复。

于 2020-04-28T19:08:35.773 回答