關於Qt 5-MSVC 2015 64位在 win7 64位系統debug程序崩潰的問題
關於Qt 5-MSVC 2015 64位在 win7 64位系統debug程序崩潰的問題
在win7 64位系統安裝VC2015的編譯器,
並安裝了 Qt 5.6 -5.7 VC2015 64位版本測試,
均出現 debug 構建的程序崩潰,然而 profile 和release卻沒有問題。
經過測試,
系統文件夾 system32和SysWOW64 有 ucrtbase.dll,是2015年11月19日的dll,
但是沒有 ucrtbased.dll 文件,這個文件是MS新弄出來的:
CRT 庫被重構為兩個不同的二進制文件、一個通用 CRT (ucrtbase)(其中包含大多數標准功能)和一個 VC 運行時庫 (vcruntime140)(其中包含與編譯器相關的功能,如異常處理和內部函數)。
系統缺乏正確版本的調試版通用運行庫 ucrtbased.dll。
這個文件可以在win10 SDK里面找到:
C:\Program Files (x86)\Windows Kits\10\bin\x64\ucrt\
ucrtbased.dll,日期2015年7月9號。
或者比這個日期更新的 ucrtbased.dll 也行,放到系統文件夾
system32里面,
測試能正常運行Qt調試版程序。
重要的就是把正確版本的ucrtbased.dll放到 Windows的 system32文件夾。
要2015年7月9號或者之后的 ucrtbased.dll ,然后Qt調試版程序就正常了
在win7 64位系統安裝VC2015的編譯器,
並安裝了 Qt 5.6 -5.7 VC2015 64位版本測試,
均出現 debug 構建的程序崩潰,然而 profile 和release卻沒有問題。
經過測試,
系統文件夾 system32和SysWOW64 有 ucrtbase.dll,是2015年11月19日的dll,
但是沒有 ucrtbased.dll 文件,這個文件是MS新弄出來的:
CRT 庫被重構為兩個不同的二進制文件、一個通用 CRT (ucrtbase)(其中包含大多數標准功能)和一個 VC 運行時庫 (vcruntime140)(其中包含與編譯器相關的功能,如異常處理和內部函數)。
系統缺乏正確版本的調試版通用運行庫 ucrtbased.dll。
這個文件可以在win10 SDK里面找到:
C:\Program Files (x86)\Windows Kits\10\bin\x64\ucrt\
ucrtbased.dll,日期2015年7月9號。
或者比這個日期更新的 ucrtbased.dll 也行,放到系統文件夾
system32里面,
測試能正常運行Qt調試版程序。
重要的就是把正確版本的ucrtbased.dll放到 Windows的 system32文件夾。
要2015年7月9號或者之后的 ucrtbased.dll ,然后Qt調試版程序就正常了
參考:
1、https://blog.csdn.net/smbluesky/article/details/78953346
2、https://blog.csdn.net/tajon1226/article/details/78695206
3、https://www.cnblogs.com/findumars/p/6110973.html
4、http://www.codemachine.com/downloads.html
5、https://blog.csdn.net/nupt_zhangtao/article/details/77444132
6、https://blog.csdn.net/u013745174/article/details/53691589
7、重點推薦https://blog.csdn.net/coder_young/article/details/78229027