QT错误:No rule to make target ‘../‘, needed by ‘debug/qrc_res (资源文件没有更新)的原理和解决方法

问题分析:资源文件  resource.qrc 已经编译生成,在resource资源目录下进行删除不能改变已经编译生成的 resource.qrc 所以会出现此类错误。

解决方法:项目右键执行qmake即可,然后重新构建,解决。网上大部分都说是修改.pro文件什么的,感觉麻烦。如果还解决不了,就看看接下来的这个编译的过程的原理,你就知道改怎么做了。

qtcreator编译过程的原理:

xx.pro(里面会包含xx.qrc项)  通过qmake.exe,得到 debug同级目录的 Makefile, Makefile.Debug, Makefile.Release(这些文件里面包含了所有编译需要文件的信息)

然后make.exe再读取Makefile文件进行源码的编译,得到 debug目录里面的各种 xx.o文件(这里就包含了qrc_xx.o),然后链接成最后的 xx.exe可执行文件。

因此,我们要想更新这个资源文件 qrc_xx.o ,那么就要让qmake重新生成这几个Makefile。但是qtcreator有时候也不知道咋的,就是不能重新生成这些Makefile,所以我们需要去这个目录,手动删除它们(为了解决资源文件问题,还可以xx_resource.rc文件也给删除了),然后构建项目,就可以了。

注:如果连 qrc_xx.o 文件都生成不了,那么就去资源文件里看看是不是有些文件路径不存在,或者文件无效的,因为这样也会导致qt生成不了qrc_xx.o 从而报错。

更详细的原理,可以参考我这个博客:(里面还讲了ui界面没有更新的问题)qt creator ui界面修改后运行不产生作用(本质分析)_我是标同学的博客-CSDN博客_qt ui文件修改后不生效

评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值