小结
最近将QT从版本5.3.2升级到了5.12.7,经及将VS2012工程升级到VS2015,碰到了一些问题,例如路径问题,程序无法启动的问题(Entry Point Not Found),进行了解决。
问题及解决
QT的路径问题
卸载QT版本5.3.2后,重新安装QT版本版本, QT的路径问题是VS工程编译的时候返回以下错误,
error MSB6006: "cmd.exe" exited with code 3?
QTDIR not found error building project in MSVC
解决办法:
打开xxx..vcxproj.user
文件,修改指定QT路径,例如:
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<QTDIR>C:\Qt\Qt5.12.7\5.12.7\msvc2015_64</QTDIR>
<LocalDebuggerEnvironment>PATH=$(QTDIR)\bin%3b"$(QTDIR)\bin%3b$(QTDIR)\bin%3b"$(QTDIR)\bin%3b$(QTDIR)\bin%3b"$(QTDIR)\bin%3b$(QTDIR)\bin%3b"$(QTDIR)\bin%3b$(QTDIR)\bin%3b"$(QTDIR)\bin%3b$(PATH)</LocalDebuggerEnvironment>
</PropertyGroup>
0xC0000139: Entry Point Not Found
通常的报错是(ntdll.dll)处(位于 .exe 中)引发的异常: 0xC0000139: Entry Point Not Found
,导致问题的原因众说纷纭,大体上是QT环境设置的问题。
具体到我的问题,发现以下工程中使用的DLL版本为旧的DLL,
Qt5Cored.dll
Qt5Guid.dll
Qt5PrintSupportd.dll
Qt5Sqld.dll
Qt5Svgd.dll
Qt5Widgetsd.dll
以下DLL手动替换为5.12.7版本,进行重新编译运行,成功!
参考
Stackoverflow: QTDIR not found error building project in MSVC
Stackoverflow: How do I resolve error MSB6006: “cmd.exe” exited with code 3?
CSDN: (ntdll.dll)处(位于 .exe 中)引发的异常: 0xC0000139: Entry Point Not Found
CSDN: 0xC0000139: Entry Point Not Found
CSDN: QT运行调试报0xc0000139错误