vs中每次都要手动添加qt include路径_Qt入门DirectX11学习之旅(二) 在QT中初步配置DirectX11环境...

7fa5ffb892b97974c058380b0a9b6cb0.png

【题外话开始】

哈哈,刚用知乎写一些小文章,大佬看到有误的地方还请斧正。em,这几天为了更好学习Unreal底层去学了DirectX后来为了方便学习又用了Qt来做图形界面。。毕竟QT编码风格轻松简单还跨平台,对于我这样的小白来说还是很友好的,不需要各种初始化一大堆,上来就用。

em,因为我学的时候网上资料有点散乱,踩了各种花式坑,简单的创建DirectX上下文搞了3天。。(大佬别笑我_(:з)∠)_)这篇主要整理记录下怎么在QT中配置使用directX的窗口,还有一些踩的坑

【题外话结束】

【正题开始】

首先,要使用DirectX11需要去官网下载相应的SDK,下载地址如下

Download DirectX Software Development Kit from Official Microsoft Download Center​www.microsoft.com
530c273d227675ff6da41d15c4a4a6ac.png

然后一键安装就行,我已经下好了,一路yes,下一步,点击安装即可

d2fdc508c29b72e61534312fcbfdd2a6.png

然后第一个神奇的坑就出来了(PS:如果只是为了使用directX的话,这一步可以跳过,无视报错!我是后来才知道的_(:з)∠)_,无视报错也没关系,因为我们只要个Lib文件,不过你要是强迫症可以解决一下,解决方案如下),才第一步就有坑,真的对小白不友好呢

3bbe6d00f487f4f1ff7bc91765bc2afa.png

然后谷歌上搜了一下,发现原因是计算机上有安装过别的版本的Microsoft Visual C++ 2010 Redistributable,我这个版本的SDK需要的是:Microsoft Visual C++ 2010 x86 Redistributable - 1010.0.30319 所以别的版本都要卸载干净。

但是卸载这些东西会导致VS编译出错!所以没事最好别卸载,小心重装VS。

6042daffb0ae350becb192565d7f0706.png

卸载干净重新安装 SDK ,就可以成功了(亲测有效,这个坑踩爆了,我还重装了VS,哎)

这只是强迫症解决报错,如果只为了Qt使用DirectX的话,大家可以无视这个烦人的S1023,直接在 C:Program Files (x86)Microsoft DirectX SDK (June 2010)Libx64 目录下 拿到 d3d11.lib 和 d3dcompiler.lib(这个库是用来读取编译shader文件的)

608e6512dc11a9fcaf1c625813e19908.png

然后就可以在 项目的 *.pro文件中写入包含LIB的路径 ,我的路径如下:

05ed8eac19034773726b30e613f853ec.png

这步有个坑,就是不要直接使用C:Program Files (x86)Microsoft DirectX SDK (June 2010)Libx64 这个路径,因为这个路径里有空格这种特殊符号,会报错哟_(:з)∠)_

还有注意下QT的路径中是/斜杠,如果直接复制路径斜杠是这个,会报错哦

简单解释下Qt奇怪的路径包含机制吧:

LIBS += -L(这里写你的Lib所在路径) -l(这里写你的lib名称,小心别写.lib哟) (加这个表示多行包含,下面还有个lib要包含)

图中的$$PWD是代表了当前的路径,../是上级目录的意思

然后生成吧,这里注意下,最好把之前生成的文件手动全部删除,或者先点qmake再点击构建,才能保证各项更新,不然会有问题。个人比较喜欢直接手动删掉上次生成的文件,也是最保险的

52181b8939863ca1af1502853ab0d0f1.png

958d21b80d97f66ac059e2134f947ff1.png

然后直接在你需要使用directX的地方直接包含这两个头文件,就行

注意下,这里不需要再Qt里包含SDK里面的文件,因为qt自带了这两个头文件,如果你

include了C:Program Files (x86)Microsoft DirectX SDK (June 2010)Include这个下面的头文件会报重复定义的错滴O(-_0)

84c1dc49ce5ada09ab59e398f686a37b.png

然后恭喜大家就可以在QWidget中使用各种API啦,当然还需要配置directX上下文到QWidget中,这个我会在下一篇专栏文章中介绍,如何用QWidget绘制DirectX

29cfc083d6ffea30388b0dcc64b592f8.png

希望QT编译快点的话可以在 构建设置里配置多核编译 加上 -j 4 (4核编译) 核桃多点的话就可以把数字加大点_(:з)∠)_ 就行如下图

6f19713c39af421597916cc13be2cb8c.png

【正题结束】

【闲话开始】

下一章会记录下,如何用QT中的QWidget窗口进行DirectX11的绘制,简单画个三角形粗来

如有错误请大佬斧正,希望文章能帮大家少踩坑~

【闲话结束】

原创文章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值