C++ ARM build fails with LINK : fatal error LNK1104: cannot open file 'atls.lib'

I am trying to build my c++ project to run on windows on arm, but I get the linker error every time. It should be just a case of installing the missing components, Tools, ATL, and MFC, but this is not working either.

Can anyone tell me how to install these compnents properly?

I have tried adding the required MSVC components by installing them with vs_installer and by upgrading the vs installation with chocolatey.

With vs_installer:


set-content -path .vsconfig -value @"

{

    "version": "1.0",

    "components": [

        "Microsoft.VisualStudio.Component.VC.Tools.ARM64",

        "Microsoft.VisualStudio.Component.VC.Tools.ARM",

        "Microsoft.VisualStudio.Component.VC.ATL.ARM64",

        "Microsoft.VisualStudio.Component.VC.ATL.ARM",

        "Microsoft.VisualStudio.Component.VC.MFC.ARM64",

        "Microsoft.VisualStudio.Component.VC.MFC.ARM",

        "Microsoft.VisualStudio.Component.VC.MFC.ARM64.Spectre",

        "Microsoft.VisualStudio.Component.VC.MFC.ARM.Spectre"

    ]

}

"@

Start-Process -FilePath "${Env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vs_installer.exe" -ArgumentList "modify", "--installPath", "`"${Env:ProgramFiles}\Microsoft Visual Studio\2022\Community`"", "--quiet", "--config", ".vsconfig" -wait

With chocolatey:


$Components = @(

    "Microsoft.VisualStudio.Component.VC.Tools.ARM64",

    "Microsoft.VisualStudio.Component.VC.Tools.ARM",

    "Microsoft.VisualStudio.Component.VC.ATL.ARM64",

    "Microsoft.VisualStudio.Component.VC.ATL.ARM",

    "Microsoft.VisualStudio.Component.VC.MFC.ARM64",

    "Microsoft.VisualStudio.Component.VC.MFC.ARM",

    "Microsoft.VisualStudio.Component.VC.MFC.ARM64.Spectre",

    "Microsoft.VisualStudio.Component.VC.MFC.ARM.Spectre"

)

$InstallerArgs = "--add " + ($Components -join " --add ")

  

choco upgrade visualstudio2022buildtools -y $InstallerArgs

In both cases it looks like it installs the correct libraries, but they are read only.

The list of atls.lib files looks like this after the install:


Get-ChildItem -Path \ -Filter atls.lib -Recurse -ErrorAction Ignore -Force

  

   Directory: C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.42.34433\atlmfc\lib\arm

  
  

Mode                 LastWriteTime         Length Name                                                                

----                 -------------         ------ ----                                                                

-a----         8/20/2025   8:59 AM        1456582 atls.lib                                                            

  
  

    Directory: C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.42.34433\atlmfc\lib\arm64

  
  

Mode                 LastWriteTime         Length Name                                                                

----                 -------------         ------ ----                                                                

-a----         8/20/2025   8:59 AM        2937336 atls.lib                                                            

  
  

    Directory: C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.42.34433\atlmfc\lib\spectre\arm

  
  

Mode                 LastWriteTime         Length Name                                                                

----                 -------------         ------ ----                                                                

-a----         8/20/2025   8:59 AM        1456934 atls.lib                                                            

  
  

    Directory: C:\Program Files\Microsoft Visual

    Studio\2022\Community\VC\Tools\MSVC\14.42.34433\atlmfc\lib\spectre\arm64

  
  

Mode                 LastWriteTime         Length Name                                                                

----                 -------------         ------ ----                                                                

-a----         8/20/2025   8:59 AM        2938036 atls.lib                                                            

  
  

    Directory: C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.42.34433\atlmfc\lib\x64

  
  

Mode                 LastWriteTime         Length Name                                                                

----                 -------------         ------ ----                                                                

-a----        12/10/2024   2:33 PM         822976 atls.lib                                                            

  
  

    Directory: C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.42.34433\atlmfc\lib\x86

  
  

Mode                 LastWriteTime         Length Name                                                                

----                 -------------         ------ ----                                                                

-a----        12/10/2024   2:33 PM        1158354 atls.lib                                                            

  
  

    Directory: C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.42.34433\atlmfc\lib\x64

  
  

Mode                 LastWriteTime         Length Name                                                                

----                 -------------         ------ ----                                                                

-a----        12/10/2024   2:55 PM         822976 atls.lib                                                            

  
  

    Directory: C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.42.34433\atlmfc\lib\x86

  
  

Mode                 LastWriteTime         Length Name                                                                

----                 -------------         ------ ----                                                                

-a----        12/10/2024   2:55 PM        1158354 atls.lib                                                            

  
  

    Directory: C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\atlmfc\lib

  
  

Mode                 LastWriteTime         Length Name                                                                

----                 -------------         ------ ----                                                                

-ar---         5/30/2023   2:13 PM        1117892 atls.lib                                                            

  
  

    Directory: C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\atlmfc\lib\amd64

  
  

Mode                 LastWriteTime         Length Name                                                                

----                 -------------         ------ ----                                                                

-ar---         5/30/2023   3:32 PM         797370 atls.lib                                                            

  
  

    Directory: C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\atlmfc\lib\arm

  
  

Mode                 LastWriteTime         Length Name                                                                

----                 -------------         ------ ----                                                                

-ar---         5/30/2023   3:38 PM        1434010 atls.lib                                                            

So, it looks like the files are there and in the right place, but I still get the same error: “LINK : fatal error LNK1104: cannot open file ‘atls.lib’”.

To check that I can access the files I ran Get-Content but I get an access denied error:


gc  "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.42.34433\atlmfc\lib\arm64"

gc : Access to the path 'C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.42.34433\atlmfc\lib\arm64' is denied.`