结论放前面:更换X64或X32的VS命令行工具。
问题描述:
正在创建库 d:\myworkspace\Build\NT32IA32\DEBUG_VS2008x86\IA32\SecMain.lib 和对象 d:\myworkspace\Build\NT32IA32\DEBUG_VS2008x86\IA32\SecMain.exp
MSVCRTD.lib(crtexe.obj) : error LNK2001: 无法解析的外部符号 __imp__InterlockedExchange@8
MSVCRTD.lib(crtexe.obj) : error LNK2001: 无法解析的外部符号 __imp__Sleep@4
MSVCRTD.lib(crtexe.obj) : error LNK2001: 无法解析的外部符号 __imp__InterlockedCompareExchange@12
MSVCRTD.lib(unhandld.obj) : error LNK2001: 无法解析的外部符号 __imp__SetUnhandledExceptionFilter@4
MSVCRTD.lib(gs_report.obj) : error LNK2001: 无法解析的外部符号 __imp__SetUnhandledExceptionFilter@4
MSVCRTD.lib(gs_support.obj) : error LNK2001: 无法解析的外部符号 __imp__QueryPerformanceCounter@4
MSVCRTD.lib(gs_support.obj) : error LNK2001: 无法解析的外部符号 __imp__GetTickCount@0
MSVCRTD.lib(gs_support.obj) : error LNK2001: 无法解析的外部符号 __imp__GetCurrentThreadId@0
MSVCRTD.lib(gs_support.obj) : error LNK2001: 无法解析的外部符号 __imp__GetCurrentProcessId@0
MSVCRTD.lib(gs_support.obj) : error LNK2001: 无法解析的外部符号 __imp__GetSystemTime
在第一次安装UDK之后,需要在VS2008x86命令行下进入到edk目录,输入edksetup.bat --nt32,再输入build。然后窗口报错误。
问题原因:
这个CMD窗口不讨论。
这个是VS2008的64位命令行窗口。
这个是VS2008的32位命令行窗口。
这三个东西的运行结果是不一样的!
下面在X64窗口和X32窗口运行相同的命令。
1.edksetup.bat --nt32命令:两类窗口结果是一样的。
2.build命令:X64失败,32成功,指定X64后,成功。
结果失败:
用另一个窗口:
在X64窗口中指定X64再build一次:
结果也成功了
3.build run 命令:
这里32的成功了,64的失败了。
这里X64的为什么失败,如果有知道的希望评论下面告诉我。