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.`