1.存在未解析的标识符
将build文件夹删掉重新编译。
__declspec
error LNK2001: 无法解析的外部符号 "__declspec(dllimport)
原因
以这种为前缀的基本上跟库相关的,说明无法正常调用库,一般是路径有问题
查看该文件所在的pro文件里,发现只添加了include(../../../Libs/CLibs/BaseUi/BaseUi.pri)
,
解决
添加对应的lib库-lRoBase3xd
-lRoBase3x
2.左侧项目目录栏无法删除已添加项目
打开目标项目上一级的pro文件,将目标文件名字注释或者删除掉,最后保存,qt就会自动更新,将该项目隐藏掉。
3.在qt creator下添加槽函数出现no documents matching “ui_xxx.h”,不能添加信号和槽
文件名大小写不一致
4.未找到xxx.obj
出现该问题原因是调用了一个只声明没实现的函数(头文件声明了,源文件没实现)
5.指针值为0xfeeefeee
OXFeeeFeee指针的含义_0xfeeefeee-CSDN博客
此值的含义为: 此指针指向的位置已经被释放了, 但释放后,又错误的重新调用了这个无效指针。
0xfeeefeee的含义为: 指针指向的空间已经被DELETE释放掉,但程序在未给该指针重新赋值前,又错误的调用了这个无效的指针
内存中常见异常值的解释(0xcccccccc 0xcdcdcdcd 0xfeeefeee等)_0xfeeefeee是什么-CSDN博客
6.发送一次信号,槽函数多次触发
槽函数会被执行多次的问题原因及解决方法_为什么槽函数不能显示多次定义-CSDN博客
1 √Qt::UniqueConnection
目前使用的解决方法是,再绑定信号槽的时候,connect添加第五个参数Qt::UniqueConnection(表示如果该信号以前没连接过,则连接它,返回true,如果以前连接过,则不再连接,返回false)
注意**:该参数对匿名函数形式的连接****无效**
connect(dynamic_cast<DeviceMainView*>(w),&DeviceMainView::sigShowDeviceToLeft,this,[=](){
emit sigShowDevicesToLeft();
SCDebug<<"fff3";
},Qt::UniqueConnection);
2.disconnect
1 × 在每次connert前先disconnect一次(还是会多次触发)
//1 √ 参数限制 防止槽函数被多次触发
//connect(this,&NewDeviceSettingWidget::sigNavButtonMenuAction,dynamic_cast<DeviceMainView*>(w),&DeviceMainView::slotNavButtonMenuAction,Qt::UniqueConnection);
//2 × disconnect 先断开连接 再重新连接 ?还是会多次触发
QMetaObject::Connection connectHandler = connect(this,&NewDeviceSettingWidget::sigNavButtonMenuAction,dynamic_cast<DeviceMainView*>(w),&DeviceMainView::slotNavButtonMenuAction);
disconnect(connectHandler);
connect(this,&NewDeviceSettingWidget::sigNavButtonMenuAction,dynamic_cast<DeviceMainView*>(w),&DeviceMainView::slotNavButtonMenuAction);
2 ?每次绑定的环境失效前,执行disconnect()函数
每次绑定的环境失效前(如在一个对话框中被绑定,该对话框被关闭则视为失效),执行disconnect()函数,将该绑定解除。
思考:
对话框被关闭,意味着将会调用void Widget::closeEvent(QCloseEvent *event)函数,那么可以在此函数中判断,关闭窗口时,发送信号给connect所在类,然后执行disconnect函数,解除连接关系。
7.debug模式下,运行点击程序会跳到不相干的地方,一直停在此处
原因:历史断点(之前打的断点)问题
解决:删掉所有历史断点就可以了
8 debug 运行 提示ui_xxx.h 不存在
前提删过相关文件 以为重构编译可以重新生成 自定义了路径
解决:整个文件夹删掉 重构(之前只清空了文件夹,文件夹没有删掉)
9 fatal error LNK1201:写入程序数据库“***.pdb”时出错;请检查是否是磁盘空间不足、路径无效或权限不够…
重新构建时,程序正在运行,关掉程序
10 ? Cannot write file .pri: 另一个程序正在使用此文件,进程无法访问。【 右键添加已存在文件】
qt项目新加文件夹或文件,出现以下错误弹框
原因
被其它软件(feilian)不断读取扫描(也就是另一个程序),导致进程被占用,无法对此项目文件进行任何操作(修改保存文件。。。
解决
卸载/升级该软件
11 q
【填坑】解决“要继续此操作,至少需要一个有效且已启用的储存库”问题_要继续此操作,至少需要一个有效且已启用的储存库-CSDN博客
维护QT添加或移除组件_此操作至少需要一个处于启用状态的有效资料档案库-CSDN博客
12 类名变紫色 应该为红色 相关报错
原因:前两行宏中间有空格导致
13 【Debug】LINK : fatal error LNK1104: 无法打开文件“XXX.dll”
重新debug一次就好了
14 【构建】dependent “*.ui” does not exist.
qt构建错误: dependent “*.h” does not exist. - 我来乔23 - 博客园 (cnblogs.com)
原因:之前添加了该文件后又删除,可能项目文件没有更新,查看所在pro文件后发现没有删除该文件的声明
尝试了重新清除、qmake、构建 还是不可以
解决:pro文件相关代码删除后再编译就可以了。
15 无法解析的外部符号
无法解析的外部符号
原因
所在pro里没有添加对应的依赖库
解决
加上对应的依赖库
16 【warning】allocating an unneeded temporary container [clazy-container-anti-pattern] 分配不需要的临时容器
[How to fix foreach warning: allocating an unneeded temporary container -Wclazy-container-anti-pattern
原因
解决
17 error: LNK1136: 无效或损坏的文件
19 C1060 编译器的堆空间不足
原因
搜索之后发现可能是因为 Qt添加大量资源文件,编译时就会出现内存溢出。
但很奇怪之前编译好好的,突然报这个错。(卸载qt重装后)
解决
报错提示的类文件所在的根目录的.pro文件中添加
CONFIG += resources_big