John Doe
John Doe

Reputation: 683

Cannot Open File atls.lib

I have atls.lib in my hard drive, but I can't link it into my Visual Studio project. I know that atls.lib is an ATL specific library file, and I have all the ATL files/headers/libraries. However, I still can't link them.

LINK : fatal error LNK1104: cannot open file 'atls.lib'

Can anyone help a helpless programmer?

Thank you very much.

Upvotes: 19

Views: 40607

Answers (8)

ChickenFeet
ChickenFeet

Reputation: 2813

Fixed for me by installing the following Individual Components through the Visual Studio Installer:

  • C++ ATL for latest v143 build tools with Spectre Mitigations (x86 & x64)

Upvotes: 22

Zhouyingge1104
Zhouyingge1104

Reputation: 33

I'm using VS2017, I fix this issue by installing this component: Visual C++ ATL (x86/x64) with Spectre Mitigations

enter image description here

Upvotes: 0

justdoityourself
justdoityourself

Reputation: 129

This issue started happening to me after a recent VS2019 update I got. I noticed that it was because Spectre Mitigation had been automatically enabled but I didn't have the Spectre Mitigation version of the library.

Installing the Spectre Mitigation version, or disabling Spectre Mitigation are both possible fixes.

Upvotes: 1

Stanley Jointer II
Stanley Jointer II

Reputation: 166

Just to keep this question updated, I encountered this error after running the install for Spectre, the VC++ spec code mitigation tool. After looking at the VC++ directories, I noticed that both the Include Directories and the Library Directories have changed to add a "Spectre" addition to the path, while the original path to the actual file is no longer there. I will update this later after I figure out whether Spectre didn't install correctly, or if simply changing the path will solve the issue; I do NOT want the speculative attack exposed in my code, which apparently happens with ATL code.

EDIT

My compiler is VS 2017 Community Edition.

EDIT

The solution that worked for me is here, discovered by Holger Schmeken

Upvotes: 10

user1669844
user1669844

Reputation: 763

I added <Visual Studio folder\VC\Tools\MSVC\14.15.26726\atlmfc\lib\x64\atls.lib> to the Linker>Input> Additional Dependencies in solution properties and it got resolved.

Upvotes: 1

Andy
Andy

Reputation: 444

I have soloved this problem by just copying this file to my project folder.

Upvotes: 0

chalion
chalion

Reputation: 121

In my case the problem was missing ATL/MFC libraries for x64, I had to add them in the Visual Studio installer (it was an open source project, so I wasn't aware of the requirement).

Once again, the invaluable procmon did the job:
While atls.lib was found under $(VCInstallDir)atlmfc\lib the linker looked in $(VCInstallDir)atlmfc\lib\amd64.

Upvotes: 12

panickal
panickal

Reputation: 1164

It seems that the library directory has not been added. In Project Properties, Linker, General options, add the directory where atls.lib resides to the Additional Library Directories field.

Upvotes: 7

Related Questions