当我尝试在命令行上编译C ++ / CX程序时,我收到链接器错误fatal error C1107: could not find assembly 'platform.winmd': please specify the assembly search path using /AI or by setting the LIBPATH environment variable
。
我按照此页面上的说明操作后错误相同:https://msdn.microsoft.com/en-us/library/dn769142.aspx(总结一下:从 VS2015的开发人员命令提示符运行cl /ZW /EHsc source.cpp
)
我还尝试从 VS2015的开发人员命令提示符运行vcvarsall.bat x86 store
但我仍然遇到同样的错误(从普通命令运行vcvarsall.bat x86 store
时也会发生同样的错误提示)。
答案 0 :(得分:3)
更新:显然这个错误已在VS2015 Update 1中得到修复,但我还是无法测试自己。
事实证明,问题中提到的文档中缺少一些命令行参数,这是编译小程序所需的完整命令行:
cl /ZW
/ZW:nostdlib
/D WINAPI_FAMILY=WINAPI_FAMILY_APP
/D __WRL_NO_DEFAULT_LIB__
/Gm-
/EHsc
/MDd
/FU"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib\store\references\platform.winmd"
/FU"C:\Program Files (x86)\Windows Kits\10\References\Windows.Foundation.FoundationContract\1.0.0.0\Windows.Foundation.FoundationContract.winmd"
/FU"C:\Program Files (x86)\Windows Kits\10\References\Windows.Foundation.UniversalApiContract\1.0.0.0\Windows.Foundation.UniversalApiContract.winmd"
smurf.cpp
/link /SUBSYSTEM:CONSOLE
smurf.cpp
包含的位置:
using namespace Platform;
int main(Platform::Array<Platform::String^>^ args)
{
Platform::Details::Console::WriteLine("This is a C++/CX program.");
}
将成功打印:
C:\Users\Mikael>smurf.exe
This is a C++/CX program.