qt 配置 unable to create a debugging engine rc.exe

qt安裝過程比較簡單。但是一般安裝後需要進行手動配置。

我習慣在windows中用microsoft visual c++ compiler作爲qt的編譯器。下面就拿qt5.12.0(qt creator 4.8.1)和vs2015來進行說明。

1)首先先安裝vs2015(默認就會安裝C++編譯器),安裝過程中選擇sdk。最好在安裝的時候就選好,不同版本的默認支持的windows sdk是不一樣的,安裝錯誤的sdk版本在用vs編譯的時候會導致出錯(比如出現無法運行 rc.exe)。需要注意的是windows10 一般是帶有windows sdk 8.1,可能是做系統的人自己加進去的。

我用vs2015 做過測試,如果安裝的sdk版本不是可選的sdk中的一個,編譯時如果在(項目->屬性->常規->目標平臺版本)選擇該版本,就會出現“無法運行rc.exe”,但是安裝了其中一個可選項後,就能向上兼容了(系統中默認是有8.1的,是不會出現這個錯誤的)。比如,如果直接安裝sdk 10.0.17763或者10.0.19041(注意,不是上面sdk中的可選版本),就會出現“無法運行rc.exe”,但是如果安裝10.0.14393或者10.0.10586 (只需要其中一個就行),那麼包括前面無法使用的sdk版本也都不會出現“無法運行rc.exe”了。(這個過程重複試驗了很多遍,這說明 不同版本的vs 對 windows sdk的版本 是有要求的。)

2)安裝qt。qt安裝後能自動識別到vs compiler ,以及sdk中的cdb(window專門用來給非VS編譯器進行調試的程序,vs的調試不依賴sdk中的cdb,而是有自己的一套與ui深度綁定的程序)。如果安裝vs的時候,沒有選擇sdk,且之前也沒有安裝的話,調試時就會出現“unable to create a debugging engine”,表示找不到cdb(默認的8.1中是不帶cdb的),且配置中也因爲識別不到cdb而出現黃色的三角形警告。

    

qt安裝過程中,編譯器、Debugger等都能自動就識別和填上,可能出現問題的就是構建套件中的選項了,如下

要的是64位的,而cdb這裏是32位的,所以出現了這個問題,改成64位就好。至於amd64 x86 x86_amd64  amd64_x86的區別在這裏

因爲只安裝了10.0.19041(非vs2015要求的版本),出現“無法運行rc.exe” ,表示找不到rc.exe (這是vs的問題)。(推測過程:這個問題在vs中也是存在的,說明這不是qt的問題,是vs的問題。)

安裝了10.0.14393(windows sdk可通過控制面板->程序->程序和功能->visual studio 2015->更改->修改 安裝 ;也可以直接到 這裏 下載後安裝。效果都一樣 )就ok了。

奇怪的事情出現了,windows中只安裝10.0.19041版的sdk,qt上選用8.1的庫(默認的8.1中是沒有cdb),cdb選用10.0.19041的。最後居然也能運行成功。

可以確定,8.1和10.0.19041的編譯器版本應該是不一樣的,這種操作容易出現大問題,所以建議安裝的windows sdk版本與vs的要求要對應, 且qt也使用這些版本的sdk。

至於vs默認支持哪個版本的sdk 可以在 控制面板->程序->程序和功能->visual studio 2015->更改->修改下面找到信息。這個安裝過程比較慢,建議還是直接從windows 官網下載 地址:https://developer.microsoft.com/zh-cn/windows/downloads/sdk-archive/

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章