Visual studio 从VS 2017使用cl.exe编译arm或arm64程序时缺少mspdbcore.dll

Visual studio 从VS 2017使用cl.exe编译arm或arm64程序时缺少mspdbcore.dll,visual-studio,visual-studio-2017,arm,cl,Visual Studio,Visual Studio 2017,Arm,Cl,我试图在Win10 x86-64环境中直接使用cl.exe将最简单的C程序编译到ARM,结果总是导致以下错误: "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.14.26428\bin\HostX64\arm\cl.exe" /c 1.c 1.c c1: fatal error C1356: unable to find mspdbcore.dll 请注意,如果我以x86代码为目标

我试图在Win10 x86-64环境中直接使用cl.exe将最简单的C程序编译到ARM,结果总是导致以下错误:

"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.14.26428\bin\HostX64\arm\cl.exe" /c 1.c

1.c
c1: fatal error C1356: unable to find mspdbcore.dll
请注意,如果我以x86代码为目标,则一切正常:“C:\Program Files(x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.14.26428\bin\HostX86\x86\cl.exe”/C 1.C

我可以编译并链接这个程序,如果从内部执行,与我在路径上遗漏了什么相比,这一切都很好?我似乎只有两个版本的mspdbcore.dll,一个在Hostx64/x64中,另一个在Hostx86/x86中;arm/arm64等效文件夹中没有任何内容

文件:1.c:

int main(void) {
  return 0;
}

好吧,结果证明问题与丢失或不正确的环境变量有关,毕竟

我为PATH、INCLUDE、LIB和LIBPATH设置了自定义覆盖,这些覆盖与示例ARM VS项目的“VC++目录”选项提供的值相匹配,现在编译工作进展顺利

编辑#1:我在VS2017中使用的设置:(可以在我上面提到的“VC++目录”选项小部件中找到)


有些VS目录有
mspdbcore.dll
,有些则没有。在LIBPATH中声明路径并不能修复它


例如,
\bin\Hostx64\x64\
\bin\Hostx86\x86\
mspdbcore.dll
,但
\bin\Hostx64\x86\
没有,因此如果要在64位系统上运行32位编译器,请使用
\bin\Hostx86\x86\cl.exe
不是
\bin\Hostx64\x86\cl.exe

我也有同样的问题,你介意分享你的设置吗?谢谢是否与C:\Program Files(x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\中的setvars脚本相同?
set PATH=C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.14.26428\bin\HostX86\arm;C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.14.26428\bin\HostX86\x86;C:\Program Files (x86)\Windows Kits\10\bin\10.0.17134.0\x86;C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools;C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\tools;C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\ide;C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin
set INCLUDE=C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.14.26428\include;C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.14.26428\atlmfc\include;C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\VS\include;C:\Program Files (x86)\Windows Kits\10\Include\10.0.17134.0\ucrt;C:\Program Files (x86)\Windows Kits\10\Include\10.0.17134.0\um;C:\Program Files (x86)\Windows Kits\10\Include\10.0.17134.0\shared;C:\Program Files (x86)\Windows Kits\10\Include\10.0.17134.0\winrt;C:\Program Files (x86)\Windows Kits\10\Include\10.0.17134.0\cppwinrt;C:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\Include\um
set LIB=C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.14.26428\lib\ARM;C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.14.26428\atlmfc\lib\ARM;C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\VS\lib\ARM;C:\Program Files (x86)\Windows Kits\10\lib\10.0.17134.0\ucrt\arm;C:\Program Files (x86)\Windows Kits\10\lib\10.0.17134.0\um\arm;C:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\lib\um\arm;C:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\Lib\um\arm
set LIBPATH=C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.14.26428\atlmfc\lib\ARM;C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.14.26428\lib\ARM;C:\Program Files (x86)\Windows Kits\10\References