首页 > 其他 > 详细

Qt--- 一些常见问题处理(无法解析得外部符号,UI头文件找不到等)

时间:2021-05-28 19:29:06      阅读:22      评论:0      收藏:0      [点我收藏+]

1.编译,出错,提示:

mainwindowprivate.obj:-1: error: LNK2001: 无法解析的外部符号 "public: virtual struct QMetaObject const * __cdecl MainWindowPrivate::metaObject(void)const " (?metaObject@MainWindowPrivate@@UEBAPEBUQMetaObject@@XZ)

 

从QObject继承了一个类:

#ifndef MAINWINDOWPRIVATE_H
#define MAINWINDOWPRIVATE_H

#include "DockManager.h"

class MainWindowPrivate : public QObject
{
Q_OBJECT
public:
MainWindowPrivate();
virtual ~MainWindowPrivate();

public:
void initDockWidget(QWidget *widget);

private:
ads::CDockManager *DockManager;
};

#endif // MAINWINDOWPRIVATE_H

 


编译,出错,提示:

mainwindowprivate.obj:-1: error: LNK2001: 无法解析的外部符号 "public: virtual struct QMetaObject const * __cdecl MainWindowPrivate::metaObject(void)const " (?metaObject@MainWindowPrivate@@UEBAPEBUQMetaObject@@XZ)

 

解决办法:

编译出错是因为没有生成moc_mainwindowprivate.cpp文件造成的。

如果新添加QObject派生类到您的项目,则必须再次运行qmake,即
1、清理项目(非必须)
2、运行qmake(必须)
3、构建项目(必须)
否则,如果在QObject继承的类上进行增量构建,那么您将拥有过时的moc文件,或者干脆没有moc文件。


原文链接: https://blog.csdn.net/libaineu2004/article/details/108215844

 

 

2.在UI设计界面不能通过添加槽函数来添加槽函数(。-  。)

技术分享图片

 

 类似于上面这个报错。

解决办法:

.对应 cpp 中include的头文件可能为大写 #include "ui_Dlg_CSP.h",导致添加槽时,找不到对应头文件,要手动改为小写。

Qt会根据 dlg_CSP.ui 自动生成一个ui_dlg_CSP.h,有时候改了UI后,没有自动重新生成,还是使用的旧的 .h。此时需要手动将旧的 .h删掉,然后构建。

 

3.

Qt--- 一些常见问题处理(无法解析得外部符号,UI头文件找不到等)

原文:https://www.cnblogs.com/linxisuo/p/14823339.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!