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/