Cannot Open File atls.lib

26,393

Solution 1

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

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

I'm running a 32 bit C# project using VS2019.

Solution 2

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.

Solution 3

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

Solution 4

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.

Solution 5

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.

Share:
26,393
John Doe
Author by

John Doe

Updated on July 09, 2022

Comments

  • John Doe
    John Doe almost 2 years

    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.

  • John Doe
    John Doe about 12 years
    I solved it. I was included the library, but was still getting the error. It solved mystically. However, now I get these errors. Care to have a look? Thank you.
  • tomer zeitune
    tomer zeitune over 5 years
    use the macro $(VCInstallDir). So its $(VCInstallDir)Tools\MSVC\14.15.26726\atlmfc\lib\x64\atls.li‌​b
  • Quad Coders
    Quad Coders over 4 years
    In VS 2019, because it is a lib file, make sure you added to correct setting: right click on project, select properties, under Configuration Properties > VC++ Directories > Library Directories, add <Visual Studio 2019 folder>\Professional\VC\Tools\MSVC\14.24.28314\atlmfc\lib\x8‌​6
  • metablaster
    metablaster about 4 years
    Thanks, basically we need spectre libs for ATL too!
  • Hao
    Hao almost 3 years
    Thanks. You solution works. It is strange that the option "C++ ATL for latest v142 build tools (x86 & x64)" doesn't resolve the issue.
  • Victor K
    Victor K almost 3 years
    @Hao it depends if /Qspectre option is set in your project or not